Moving input errors from model to protocol

See #100