add function flow