added data access layer and service class