Please split this into multiple commits if you're doing stuff like this.