updates to quaternion object with some tests