sparse protocol allows for composing of different "protocols" at runtime, and will allow for DNS and TCP as well as different TCP protocols like HTTP