unit tests
merge [wip]