Painless Java factory objects with configuration file-less dynamic class loading