store protocol and operation protocol

interesting implementation layering here