change architecture that receiver do all stuff (not done yet)