Versión mejorada con algunos cambios