refactored DAL and Material Repository