added exception for block-option variable-resolution, added abstractExecutor
refactored compiler to a class