El objetivo de esta prueba es refactorizar el código de este proyecto. Se puede realizar cualquier cambio que considere necesario en el código y en los test.
- Todos los test deben pasar.
- El código debe seguir los principios de la programación orientada a objetos (SOLID, DRY, etc...).
- El código resultante debe ser mantenible y extensible.