I spent 2 hours on this.