add function building