Merged part 1 and part 2 changes.