wrap in a dict() so we never change the object we are iterating over
dont require modules to return something, but if they return 'abort', break
better comment