added data access layer interfaces (closes #9)