In the development of Graphical User Interface (GUI) application or web application the Model-View Controller (MVC) architectural paradigm is often used to separate logic and the user interface. An event driven application such as web application or a Windows-based application would be implemented by first the model representation which is the data collection and logical set of regimented rules that govern the data. The view representation is the Graphical User Interface that users have to interact with and the controller is the events that are triggered behind the scenes as the user interacts with the application, which involves the communication between the model component and the view components. The Model-View Control Concept has been widely adapted in many languages such as the Java Enterprise Edition, mainly to solve the problem of interdependencies between all components of the application, which can have a cascading effect when adding more data and logic. The problem is often application maintainability, where the Model-View Control Concept comes in and separates business logic code, data access code, and representation code.