much better quaternions