add test for compilers
refactoring