primera versión limpia del código