added dao layer