add some more tests (covering over 80%)