switched to clang
added basic test cases