introspector reflect invoke