Cambio: las validaciones se hacen sobre las asignaciones. Hay mucho codigo comentado para que no rompa, hay que revisarlo.