Lots of renaming for clarity.