add/edit survey behaves as factory for user