function-signature version