dao layer almost complete