simple vector library, with quaternion