Merging the integration branch.

The branch was used to combine the two different systems.