Data access layer

new data access layer using Interfaces