rework code and remove preference code
-add Compiler class