controller is a singleton, added prototyping in the model