Refactor, DAO architecture, Factory and impl skel