Varios Cambios:
Se saco el null como devolucion
Se cambiaron clases abstractas por traits
Se agregaron tests