add quaternion
add quaternion support