using compiled delegate instead of reflection in Marr