Make Mutable protocol declaration explicit to work around a bunch of issues with actually implementing the protocol.
Update Tests