add more tests
Major documentation update