Adding abstract dao layer