Java EE has progressed over the years from a servlet-centric platform to one that provides a number of different options for building web and enterprise applications. In the early days of Java EE, in those days referred to as J2EE, one would focus on developing servlets for building the frontend, as well as the integration and business layers. Things got a bit more dynamic when JavaServer Pages (JSP) came to fruition, as developers could begin to divide the workload between groups that would focus on the HTML markup, and those who would focus on the application logic. JavaServer Faces took it one step further by adhering to the Model-View-Controller pattern, whereby code logic was separated from page markup, creating three different tiers. This pattern makes development more logical and long-term maintenance much easier.