Codigo mejorado hasta ahora