codigo listo y comentado