A large chunk of changes in this commit