There are 3 major components of a model-view-controller application-- The model, the view, and the controller. Breifly, they can be described as
The other components of the package are the event the listener which work together to allow event-handling between the various components, and the final application.
You will notice that I have included 2 different views in the package. The main reason I have done this is to demonstrate how easy it is to create additional views when one uses the MVC architecture. One could just as easily define multiple controllers.
I have also defined the main model (EstimatorModel) as abstract. This is because it does not define what kind of data is being estimated. I can now easily extend this class to display, for example, estimates of e, or anything else I want, just be declaring a few methods. I can use the views and controllers as is, because they have no knowledge of the inner workings of the model at this level.