added new abstraction layer between DataLoader and database