metafunction