Añadidas las clases abstractas y sus implementaciones, falta revisar estructura