added tests
lots of stuff (test suite works)