add Factory interface
add FactorySQL class