refactoring Receiver