PROMISED -> RESERVED
Implement an abstraction for the low-level protocol
Implement a test suite for the protocol package