#4 - DRY refactor of receiver operations

This is a partial that addresses the first three concerns in #4.