Namespace CoreObject under a core package
Namespace CoreObject under a core package and move the test to match
Move CoreObject and extend into a core package, document all the functions that go into this inheritence model, update tests