made all functions of Base_DAO protected and changed constructor to abstract