allow custom protocol