quaternion work