Major, working changes.
merged.