added quaternion class; added macro for namespace