Turn compiler and preprocessor into classes