fix to return same result both by reflection and by macro