Versión refactorizada