more refactoring on ::Receiver.new