move some functions to object3d