Added some classes and an interface. this should be interesting