add request, form, redirect functions