Major changes to shape class. It is now a shared object