Progress on abstracting away protocol details into Protocol.hs