version nueva actualizada y dividida en modulo