Recall to a whistle. Start with no distractions and dog next to you. Blow whistle, give yummy treat. Repeat. Then (still with no distractions) do it with dog a little further away. Gradually increase distance (but watch out for distractions as the further away you are, the more distractions are likely to be available).
Then introduce a distraction - maybe in the garden instead of in the boring bathroom - and repeat, starting off close to the dog again. This is important, distance plus distraction makes it harder for them, so just work on one at a time. When they have nailed each one separately you can do distance and distraction together.
I think it helps to think about what you want the dog to realise rather than what you want him to do. For example, you want him to realise that the whistle means a special treat is available if he comes to you. This makes it easier to remember that he expects a treat special enough to outrank anything else available to him at the time, or why would he bother? He doesn't always have to get a super special treat but you have to deliver often enough to maintain a reasonable expectation - a bit like playing slot machines.