create abstract dao