Implement pimple for laz-loading of classes and
split our code into controllers and models for re-using code
and better organization