Completely rework this.