Refactored smartpointers. You no longer have to inherit ReferenceCounter anymore.