moved quaternion code to separate cpp file