re-nested sender and receiver b/c they need to access the same instance variables...