program to an interface, create abstract DAO references that contains instances of different dao objects