Initial
Initial pt. 2
Major reworking of the base classes