+ 3 different optimizer modes (diagnostic/interactive/build)
+ basic diagnostic messages
* little API refactor