Renamed project and associated bits to match actual object name.
Scrapped out all the extra crap and reduced object definition to baseclass.
Optimized and cleaned up code.
Added comments.