New system for moving stuff around. SAme functions but no duplicates and moveable constructor adds itself to object