added quaternions