Reworked IDAO, AbstractDAO and implemented them