add function::chain