See comments in commits.