Very important to use ^ in recieve blocks, otherwise your pattern match always works and rebind your variable to a new value