abstract uploadMultipart into a method
add ability to override auth redirect location