add in quaternion vector rotation, shuffle around some inline position, unit test pass