these commits have been annoyingly too big to summarize