Added new classes and interfaces
Changed some code to use the new interface and classes.
Added some references