moved some functionality from DAL to BLL