rename class; add factory
factor out reflection classes
use spi
create separate JDK reflection module
add TargetInvoker