This is a completely functional calculator. And due to its design it can be easily extendible. It is organized according the the Model-View-Controller (MVC) pattern. The GUI ( the view) is completely separated from the back-end (the model). The Controller interacts with both the view and the model to process all the calculations.  The project uses an interface to make possible the communication between the view and the model. Also it uses an bin class to store the data input by the user.