Refactor receiver