some tests, but incomplete
add mock for unit tests