added most unit tests
unit tests