add DAL classes and some modifications