Added data access layer and interfaces