Nice one, I'll refactor this.