refactor the Dao factor methods