Document and Refactor OpCompiler
move specs to appropriate location