add some tests
some changes