move/privatise PutPresenter into FunctionPresenter