Just do you know, `unless ... else` is generally not used since it's hard to read.  I've switched it in master.