add my own quaternion functions