Cleanup and support for destination_url parameter

Should `extra_state_params` be an optional argument?