Major changes.
Fix merge conflicts.