Basic functionality and class structure is done, still need to test for correctness