added more tests, removed unneeded methods, finished most methods