1. implementing the "put" operation
2. debug: each read-phase/write-phase holds its own Communication
instance