Resructured the bowler protocol implementation into its own package, and added support for the upcoming version 4 of the protocol.