Renamed some classes. Added some documentation