refactor: pass compiler options as a hash