adding initial migration; refactoring DAL and BLL