accept single-function handlers