FIELD
Exemplary embodiments described herein relate generally to a user interface and, more particularly, to an interactive user interface that is capable of collecting textual information about collaborative projects, identifying responsible parties for governance and compliance of projects, and enabling users to easily keep track of project-related information
BACKGROUND
Many questions posed to a user within an interface such as a web page require the user to select an answer from among multiple possible answers. When multiple options are available as a selection, designers will often use drop-down boxes or drop-down lists to provide a method to the user for choosing a selection from among multiple possible selections. A drop-down list is a type of graphical control element that is used by a graphical user interface (GUI) to provide consistent visual representations of information. When the drop-down list is inactive, it typically displays a single value or a previously selected value in a window or menu bar. When the list is activated, it drops down and displays a list of values from which the user may select from. When the user selects a value from the list, the drop-down list reverts back to its inactive state, displaying the selected value. A drop-down list can make it easier to display a large list of choices or options where initially a single choice is shown and the remaining choices may be shown by the user activating the drop-down feature of the drop-down list.
A drop-down list is often used in the design of graphical user interfaces, including web design. A designer can put a significant amount of information or possible selections in a form without cluttering the entire page, because the possible selections are hidden when not activated. However, a drop-down list has a number of drawbacks. For example, when a drop-down list becomes large enough it can be difficult for a user to conveniently scan or navigate through the list. Oftentimes a user will need to scroll inside the drop down list which can be a slow and painful experience. Furthermore, unless the cursor is positioned at a specific location on the page, a scroll command may cause the entire webpage to scroll instead of the drop-down list which can be frustrating and time consuming for the user. Another problem with drop-down lists is that they do not typically allow a user to make multiple selections within the list. That is, a drop-down list does not maintain awareness of the multiple selections but instead only remembers the most recent selection. Furthermore, the drop-down list does not provide a method for unselecting one or more previously selected items from the list. Furthermore, a vertical drop-down box may not adequately support application designs other than the traditional top to bottom flows.
BRIEF DESCRIPTION OF THE DRAWINGS
Features and advantages of the exemplary embodiments, and the manner in which the same are accomplished, will become more readily apparent with reference to the following detailed description taken in conjunction with the accompanying drawings, in which:
FIG. 1 is a diagram illustrating an overview of a user interface for managing project information in accordance with an example embodiment.
FIG. 2 is a diagram illustrating a notification window of the user interface in accordance with an example embodiment.
FIG. 3 is a diagram illustrating a new project screen of the user interface in accordance with an example embodiment.
FIG. 4 is a diagram illustrating a project overview screen of the user interface in accordance with an example embodiment.
FIG. 5A is a diagram illustrating a business information screen generated by a selection from the project overview screen of FIG. 4, in accordance with an example embodiment.
FIG. 5B is a diagram illustrating a team information screen generated by a selection from the project overview screen of FIG. 4, in accordance with an example embodiment.
FIGS. 6A and 6B are diagrams illustrating a radial list associated with a team member information screen, in accordance with an example embodiment.
FIG. 7 is a diagram illustrating an architecture for supporting the user interface in accordance with an example embodiment.
FIG. 8 is a diagram illustrating a computing device for generating a user interface for managing project information in accordance with an example embodiment.
FIG. 9 is a diagram illustrating a method for generating a user interface for managing project information in accordance with an example embodiment.
Throughout the drawings and the detailed description, unless otherwise described, the same drawing reference numerals will be understood to refer to the same elements, features, and structures. The relative size and depiction of these elements may be exaggerated or adjusted for clarity, illustration, and/or convenience.
DETAILED DESCRIPTION
In the following description, specific details are set forth in order to provide a thorough understanding of the various exemplary embodiments. It should be appreciated that various modifications to the embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the invention. Moreover, in the following description, numerous details are set forth for the purpose of explanation. However, one of ordinary skill in the art should understand that embodiments may be practiced without the use of these specific details. In other instances, well-known structures and processes are not shown or described in order not to obscure the description with unnecessary detail. Thus, the present disclosure is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.
The exemplary embodiments described herein relate to a user interface for project information management. The term project as used herein is not meant to limit the scope of the exemplary embodiments and may refer to an activity, a task, a design, a job, a plan, an enterprise, a matter, a program, a proposal, a strategy, and the like. The user interface may provide an interactive user experience to better engage users in a collaborative environment while completing the information required for bringing their data into an infrastructure or other storage. Also provided is an underlying architecture to collect, store and extract project data information using a micro services layer in the domain of data governance and compliance. The architecture provides needed scalability for such a system along with effective exploration of the underlying data. The infrastructure may store and extract information about all the projects stored in the infrastructure. An example of some of the benefits provided by the embodiments herein include an interactive web-based user experience to provide, explore and track project information, a unique visual and interaction design to support seamless user interface, support for collaboration among different stakeholders involved in a project, a value-added service for information on-boarding and tracking in the infrastructure improving the overall user experience when exploring this data, and providing data governance and compliance for internal and external customer data.
The user interface described herein may be a web-based interface that makes use of a set of interactive widgets for enhancing a user experience through a game-like collaborative environment. The experience is designed to keep the user engaged in the process throughout. The user interface provides an innovative user experience from various views in the application including an overview experience and a project view experience. The user interface may provide a high level summary of all the requests previously created by a user, provide easy access to a timeline of updates about existing projects, provide awareness about any trouble (e.g. longer than expected approval time) with project approval, initiate a new project request or gather details on demand about an existing project, provide an overview of a project's status, provide an engaging way for the user to provide and keep track of the required information, and seamlessly integrate awareness about actions performed by other collaborators on the project.
FIG. 1 is a diagram illustrating an overview of a user interface 100 for managing project information in accordance with an example embodiment. The user interface 100 may be displayed on a screen such as a computing screen, a touch screen, a multi-panel display, and the like. The screen may be included in, coupled to, or externally attached to a computing device such as a computer, a mobile device, a server, a tablet, a kiosk, and the like. An objective of the user interface 100 is to enable users to easily keep track of all of the projects they have initiated, projects for review, and active/archived projects for the user. Bubbles or other shaped objects may be used to categorize and organize different types of projects. Instead of using traditional methods to show this data using a tabular view, the exemplary embodiments make use of interactive circle packing in which each circle may represent a particular project, group of projects having a common attribute, and the like.
Referring to FIG. 1, the user interface 100 is displayed for a user 110. Here, the user interface 100 is provided in the form of a radial-based menu with objects (e.g., circles or bubbles) within that are used to represent selections that can be made by a user. The content that is displayed within the user interface 100 may be based on the user 110. For example, different information may be displayed based on whether the user 110 is a project creator, a project reviewer, a project lead, and the like. Identification of the user 110 may be performed when the user logs on to the user interface 100, and the like. The user interface 100 includes a create new project tab 120 that may be used to create a new project by the user 110. The user interface 100 also includes various objects which are used to hierarchically organize the data that is displayed to the user 110.
In this example, the outer object represents an overview object 130 of project information about the user 110 and includes a plurality of objects (e.g., three circles 140, 150, and 160) therein that represent project information objects which may be selected by the user. The project information objects may each represent a respective category of project related information about the user. In this example, the project information objects include a Project for Review object 140, a My Projects object 150, and an Active Projects object 160. In the example of FIG. 1, the Projects for Review object 140 (or bubble) has been selected by the user causing the user interface to expand a display of the Projects for Review object 140 and reveal various different projects for which the user 110 is designated as a reviewer. That is, by selecting a project information object from among a plurality of possible project information objects a user may drill down into various subcategories of the category corresponding to the project information object. It should be appreciated that the view a user is shown may be based on their role with the project, the company, and the like. Also, the details and the information provided by objects within the overview object 130 may vary based on the user type.
Here, the project information object represents the category Projects for Review, and the seven sub objects represent projects in which the user 110 is a reviewer. In this case, the seven sub objects are represented by seven bubbles and are included within a bubble of the Projects for Review object 140. In this example, a project completion status is represented using a fill level of an object. The fill level of an object may be a different color than a background color of the object. For example, subobject 142 has a bubble shape and represents Project 1. In addition, the subobject 142 has a fill level that occupies more than half of the bubble corresponding to subobject 142, which indicates that Project 1 is more than half (e.g., 55%) complete. In this example, the fill color is darker than the background color of the subobject 142 and is used to identify a level of the fill level. As another example, subobject 144 represents Project 0 and is completely filled, which indicates that Project 0 is complete. In addition, each object (e.g., bubble) may have a tab or other feature that may be selected by a user to further expand information included in the object. Furthermore, according to various aspects, a wave level or wave frequency included in the object at the top of the fill level may be used to represent whether a project is late, almost due, ahead of schedule, taking more time than expected, and the like. In Project 1 subobject, wave frequency 143 is rather choppy and indicates that Project 1 is taking longer than expected.
In addition to the Projects for Review object 140, the overview object 130 includes a My Projects object 150 and an Active Projects object 160 there within. According to various aspects, different fill colors and/or background may be used to represent whether a project has been turned in to a reviewer or whether a project is yet to be turned in. For example, in the My Projects object 150, subobject 151 represents a project that has not been turned in and subobject 152 represents a project that has been turned in. In this case, the subobject 151 has a fill color that is lighter in color than a fill color of the subobject 152, and is used to distinguish that the subobject 151 represents a project that has not been turned into a reviewer and the subobject 152 represents a project that has been turned into a reviewer.
In the example of FIG. 1, the color of an object indicates whether a project is submitted for review or not. Furthermore, a liquid fluid metaphor is used to further indicate the current state of the project. For example, the liquid fill level may represent the amount of progress for a project while the liquid wave frequency may represent whether the project is progressing as expected or whether there is trouble with the project. The various features of each project such as color, fill level, wave frequency, and the like, may be updated dynamically based on project progress and based on which user is looking at the screen. For example, a user who has been designated to review Project X, but who has not received Project X, may see a completion fill level indicating that 0% of the review of Project X has been completed. However, a user who is generating Project X, and who is halfway finished with Project X, but who has not turned Project X in, may see a fill level indicating that 50% of Project X has been completed and have a color indicating Project X has not been turned in.
FIG. 2 illustrates a notification window 200 of the user interface in accordance with an example embodiment. Through the notification window 200, users may quickly see and recognize a timeline of notifications generated as a result of being a project creator or being added by the action of other collaborators. The notifications may be captured and pushed to the interface in real time. Users may also expand the details about a notification by hovering over it with a cursor and may select a project by clicking it. Referring to FIG. 2, the notification window is based on project information corresponding to user 205. In this example, the notification window 200 includes a plurality of notifications 210. Each notification 210 includes a creator 220, a type 230, an action or result 240, and a title 250. For example, the creator 220 may be the user or it may be a collaborator of the user. The type 230 may be a project, a role in the project, and the like. An action or result 240 may be an update action, a create action, a rejection result, an approval result, and the like.
FIG. 3 is a diagram illustrating a new project screen 300 of the user interface in accordance with an example embodiment. The new project screen 300 may be generated in response to a user selecting the new project tab 120 shown in FIG. 1. In response to selecting to generate a new project, various project-related information may be requested through input fields such as Project Name, Project Type, Project Description, and the like. The user may generate the new project through a selection such as selecting a submit button, an OK button, and the like. When the new project is generated, the new project screen 300 may close and project overview screen 400 of the user interface may be displayed as shown in the example of FIG. 4.
Referring to FIG. 4, a project object 410 (e.g., circle or bubble) represents a new project and includes the name of the project which in this case is ‘RDF.’ The project object 410 may also include a fill level indicating a progress status of the project and a color indicating whether the project has been turned in. In the example of FIG. 4, the project object 410 has a corresponding project view object 430 that includes a plurality of objects there within that may be selected by the user and used to input various information about the project. In some cases, the objects within the project view object 430 may be the same for each project or they may be different based on, for example, a type of project, a project description, and the like. For example, the user interface may extract information from at least one of the project type field or the project description field shown in FIG. 3, and generate various objects within the overview object 430 based thereon. Located above the project overview object 430 are action tabs 420 that allow the user to save a project, delete a project, submit a project, and the like.
In this example, the project view object 430 includes a business information object 440, a project information object 450, and a team member information object 460. A user may select any of the default objects to enter information about the project. In addition, the user may take action with the project by selecting an action tab from the project action bar 410 in order to perform various actions with respect to the project such as save the project, delete the project, and submit the project for review. Also shown in FIG. 4 is a project description 470 which may be entered by the user from the new project screen 300 shown in FIG. 3.
FIG. 5A illustrates a business information screen 500 generated by a selection of the business bubble from the project overview screen of FIG. 4, in accordance with an example embodiment. Referring to FIG. 5A, the business overview screen 500 has a project object 510 including the name of the project and an indication of the completion status and a turned-in status of the project. The project object 510 has a corresponding project view object 530 that includes a plurality of objects (business information object 540, a project information object 550, and a team member information object 560) which may be selected by the user and used to input various information about the project. The plurality of objects revealed or displayed within the project view bubble 530 may vary based on one or more of the project description and the project type entered by the user about the project. That is, the objects that are revealed and which may receive user input may change based on the project description entered by the user during the project creation phase. As another example, all projects may have the same objects (e.g., default bubbles) displayed regardless.
In this example, a user has selected the business information object 540 (shown in FIG. 4 as 440). In response, the business information object 540 expands in a circular fashion and reveals the possible options available for selection under the business information object 540 which in this case includes subobjects 542 (i.e., transportation, aviation, and power and water bubble) representing different possible business areas of the project 510. By revealing the selections in a radial or circular fashion, the user is able to simultaneously view all options for inputting business information about the project 510. Furthermore, although not shown in FIG. 5, if the user were to select one of the subobjects 542, the sub object would further expand in a circular fashion to reveal selections possible within. In this example, when the user selects the business information object 540, the other objects (e.g., the project information object 550 and the team member information object 560) move outward within the project view object 530 to make room for the expanding of the business information object 540. In some cases, project view object 530 may expand to provide additional room to display the object included within in response to an object or sub object being selected. As another example, if the user interface screen runs out of room for displaying options within a selected object, a selected object may be expanded into a screen that overlays a previous screen, an example of which is described in FIG. 6.
FIG. 5B illustrates a team member information screen 501 generated by a selection from the project overview screen of FIG. 4, in accordance with an example embodiment. Referring to FIG. 5B, the team information screen 501 is similar to the business information screen 500 shown in FIG. 5A, except in this case the team member information object 560 is selected by the user (shown in FIG. 4 as 460). In response to being selected, the team member information object 560 expands in a circular fashion to reveal the possible selections available under the team member information object 560, which in this case includes sub-objects 562 representing different roles and different people associated with the project 510. By revealing the selections in a radial or circular fashion, the user is able to simultaneously view all options for inputting team member information about the project 510. In the examples of FIGS. 5A and 5B, a project-related object corresponding to a category is selected and then a plurality of sub project-related objects representing sub-categories of the respective category are revealed. In this way, a user may hierarchically drill down within objects until a user reaches an end of the project related information.
FIGS. 6A and 6B illustrate a radial list view 600 that is associated with the team member information screen 501 of FIG. 5B, in accordance with an example embodiment. Referring to FIG. 6A, a selection of a team member object 562 shown in FIG. 5B is selected, and in response, the user interface displays a radial list 640 on top of (i.e., as an overlay) the displayed team member information screen 501. In addition, the project view object 630 (shown as 530 in FIG. 5B) has a background color that is changed (e.g., grayed out) and the radial list 640 is displayed on top of the project view object 630. In this example, possible selections such as 680 from the radial list 640 are displayed about a central object 660 which includes a search bar 670. The user may enter a name, or other identifying information about a person into the search bar 660 and the possible matches or possible selections 680 may be displayed as bubbles as shown in the radial list 640 about the central object 660. The radial list 640 also includes a navigation object 650 which allows the user to perform various actions with respect to the radial list 640. For example, the radial list 640 may display a predetermined amount of matches (which in this example is eight matches). In a situation in which nine possible matches are returned, in this example, the first eight matches may be displayed and the user may select a command on the navigation bubble 650 to move or spin the radial list 640 about the central bubble 660 such that the ninth match is displayed in place of one of the previous eight matches.
According to various exemplary embodiments, problems associated with a drop-down list are solved by the radial list 640 which may improve the user experience when selecting multiple items from the radial list 640. Here, the innovative radial list 640 may integrate and work seamlessly with an underlying circular design of different widgets of a webpage or other graphical interface. In the example of FIGS. 6A and 6B, a user is using the radial list 640 to identify a business sponsor for project 610, however, the examples are not limited thereto. For example, the radial list may display business information, project information, information about different project roles, and the like. Referring to FIG. 6B, the user may make a selection from the radial list 640 and the selected item 690 may be highlighted by color change and also visualized inside the inner circular container (i.e., the central object 660) at the center of the widget. For example, the user may select a bubble from the radial list 640 by clicking on it or dragging it inside the central object 660. As multiple items are selected, the selected items may all remain visible to the user even if they move to another location in the list or search for another item. Accordingly, the user can easily unselect an item by clicking on it or dragging it out of the central object 660. For example, the user may unselect previously selected selection 690 by clicking on it or by dragging and dropping the item outside of the central object 660.
FIG. 7 illustrates an architecture 700 for supporting the user interface in accordance with an example embodiment. The architecture 700 highlights different building blocks that may be used in a system for generating the user interface described herein. Provided in this example are functionalities of different architectural modules. For example, a database layer 710 represents data used to generate the user interface. Because of the connected nature of application data, the information for the user interface may be stored in a graph structure. For example, the database layer 710 may include a graph blue print and may provide access to data efficiently on demand. According to various exemplary embodiments, the architecture includes a micro services layer 720 which is used to achieve better robustness, application flexibility and dynamic user experience. FIG. 7 highlights different micro services that may be supported by the system and it should be appreciated that additional micro services may be used to support evolving system needs. The architecture 700 also includes a client side layer 730 including an interactive web-based application that allows users to provide, review, approve and revisit the underlying information. In this example, a client side application may use representational state transfer (REST) application programming interfaces (APIs) to connect, send and pull data through different underlying micro services. Individual micro services may support one or more features supported in the client side application. Also, to achieve robustness, flexibility and speed microservices may be distributed and replicated in backend cloud infrastructure (e.g., cloud foundry).
FIG. 8 illustrates a computing device 800 for generating a user interface for managing project information in accordance with an example embodiment. For example, the computing device 800 may be a workstation, a computer, a laptop, a mobile phone, a tablet, a kiosk, and the like. Referring to FIG. 8, the computing device 800 includes a network interface 810, a processor 820, a display 830, and a storage 840. Although not shown in FIG. 8, the computing device 800 may include other features, for example, a transmitter, a receiver, and the like. The network interface 810 may transmit and receive data over a network such as the Internet. The processor 820 may include a single core processing device, a multicore processing device, or multiple processing devices. The processor 820 may control the overall operations of the computing device 800. The display 830 may be an embedded display such as a touch screen on a mobile device or it may be an external display attached to the computing device through a connection such as a wired or wireless connection, and may display a user interface described according to various example embodiments. The storage 840 may include any desired device, for example, random access memory (RAM), one or more hard disks, cache, hybrid memory, an external memory, flash memory, and the like. The input unit 850 may include one or more of a keyboard, a mouse, a touchscreen, a touchpad, a camera, a microphone, and the like.
The display 840 may display a user interface and any of the examples previously described with respect to FIGS. 1-6B. For example, the display 840 may display a project overview screen of the user interface. The project overview screen may include a plurality of project information objects each representing a category of project-related information of the user of the user interface. The input unit 850 may receive, from the user, a selection of a project information object from among the plurality of displayed project information objects being displayed on the project overview screen. In this example, the project overview screen may be displayed on the display 840 having an outline of an object such as a circle or a bubble and the plurality of project information objects may be displayed within the outlie of the project overview screen object and may be represented by similar object shapes such as circles or bubbles on the display 840.
In response to the input unit 850 receiving the selection of the project information object from the user, the processor 820 may expand a size of a visual representation of the selected project information object on the project overview screen and with respect to the other project information objects. For example, the processor 820 may expand the size of a circle representing the selected project information object within the project overview screen. Also, the processor 820 may reveal a plurality of subobjects within the expanded selected project information object. In this example, the subobjects may each represent a subcategory of the category of the project that is represented by the selected project information object. In these examples, the plurality of subobjects may each have a same shape as a shape of the plurality of project information objects. In some examples, the processor 820 may move a position of the other project information objects within the project overview screen to make room for the expanded size of the display of the selected project information object. In addition to displaying the objects and subobjects, the processor 820 may display a liquid fill level in each of the objects and/or subobjects indicating a completion status of a project related activity represented by each of the objects/subobjects.
In some examples, the input unit 850 may further receive a selection of a subobject from the user. In response to receiving the selection of the subobject, the processor 820 may display a radial list comprising possible selections for the user to choose from for a subcategory of the project represented by the subobject. For example, the possible selections of the radial list may each be represented by selectable objects within the radial list, and the selectable objects may be arranged about a central object of the radial list. The radial list may include a navigation object which allows the user to navigate through the radial list of possible selections.
FIG. 9 illustrates a method 900 of a user interface for managing project information in accordance with an example embodiment. Referring to FIG. 9, the method 900 may include displaying a project overview screen on a display device, in 910, where the project overview screen includes a plurality of project information objects each representing a category of project-related information of the user. The method 900 may further include receiving, from the user, a selection of a project information object from among the plurality of displayed project information objects, in 920. In response to receiving the selection of the project information object from the user, the method 900 may further include expanding a size of a visual representation of the selected project information object on the project overview screen and with respect to the other project information objects, in 930, and revealing a plurality of subobjects within the expanded selected project information object, in 940. In this example, the subobjects may each represent a subcategory of the category of the project that is represented by the selected project information object.
The example embodiments are related to data storage devices as well as tools, processes, and an innovative user interface design to govern, track and facilitate data ingestion into the data storage. For example, the data storage may include one or more of a back-end server, a cloud storage, a data lake, a server, and the like. In the data lake example, the data storage infrastructure may host ‘big data’ from several business entities. One of the important features towards the success of such an infrastructure is the capability to effectively collect contextual information about the underlying data and to identify responsible parties for data governance and compliance. However, traditionally this process was not standardized and prior methods lack the process integration required to achieve this effectively. The example embodiments may provide the tools, processes and an interactive user interface that is able to collect the meta-information around governance, compliance and usage of the data being ingested into data-lake.
In some of the examples provided, a flexible backend infrastructure is built on top of micro services architecture and graph database to collect, store and track the meta-information about underlying data. The end user application (e.g., user interface) may include a web-based interface that makes use of a set of novel interactive widgets to enhance user experience through a game like collaborative environment. The user experience may keep the user engagement level high throughout a process that can otherwise be overwhelming and boring for the user, as previous applications often required users to answer a number of contextual questions about their data. Furthermore, the exemplary embodiments facilitate the collaboration among multiple stakeholders who need to review, approve and amend information provided by a project lead or other users.
As will be appreciated based on the foregoing specification, the above-described examples of the disclosure may be implemented using computer programming or engineering techniques including computer software, firmware, hardware or any combination or subset thereof. Any such resulting program, having computer-readable code, may be embodied or provided within one or more non transitory computer-readable media, thereby making a computer program product, i.e., an article of manufacture, according to the discussed examples of the disclosure. For example, the non-transitory computer-readable media may be, but is not limited to, a fixed drive, diskette, optical disk, magnetic tape, flash memory, semiconductor memory such as read-only memory (ROM), and/or any transmitting/receiving medium such as the Internet, cloud storage, the internet of things, or other communication network or link. The article of manufacture containing the computer code may be made and/or used by executing the code directly from one medium, by copying the code from one medium to another medium, or by transmitting the code over a network.
The computer programs (also referred to as programs, software, software applications, “apps”, or code) may include machine instructions for a programmable processor, and may be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms “machine-readable medium” and “computer-readable medium” refer to any computer program product, apparatus, cloud storage, internet of things, and/or device (e.g., magnetic discs, optical disks, memory, programmable logic devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The “machine-readable medium” and “computer-readable medium,” however, do not include transitory signals. The term “machine-readable signal” refers to any signal that may be used to provide machine instructions and/or any other kind of data to a programmable processor.
The above descriptions and illustrations of processes herein should not be considered to imply a fixed order for performing the process steps. Rather, the process steps may be performed in any order that is practicable, including simultaneous performance of at least some steps.
Although the present invention has been described in connection with specific exemplary embodiments, it should be understood that various changes, substitutions, and alterations apparent to those skilled in the art can be made to the disclosed embodiments without departing from the spirit and scope of the invention as set forth in the appended claims.