contains function complete
add function complete