use something that looks more like a protocol handler