refactor DAL
refactor DAL