Start object rework
Finish off object implementation
Merge branch 'rework'