Altered the pooling system to use Reflection instead of AbstractFactory.