more metafunction interface tweaks