will be based on vector3 in future