allow sub-script functions to have a more flexible signature