Created abstract factory superclass to reuse reflection code