refactored evaluation policy (tested)
Use new preprocessor to define fun map (tested)