more flexible redirector