reworked vector lib, added quaternion lib