factoryDAO pattern added