try to hide exec reporting logic into functions
add more preprocessor guard on exec methods