refactor compile options