correcte and complete and add function