add function progation