Rethinking and rewriting this.