todo funcional
complete