finally happy with this.