move most test cases from main to separate UnitTest project