new object reference functions

because you cant use custom properties to save an object pointer