reworked structure, added cmake and ctest added namespace, and reworked tests with asserts, added initilzer lists to vector