Because I find 

    saveSnapshotAsync(md, snapshot).map {
      case _ ⇒ SaveSnapshotSucceeded(md)
    }.recover {
      case e ⇒ SaveSnapshotFailed(metadata, e)
    }.to(self, p)

less readable, although it's less redundant. Anyway, I should change `Success(m)` to `Success(_)`.