added quaternionf class