added quaternion class, added some documentation to the code