fix up Factory pattern for config readers