Implement contracts for many major components of the framework.
Merge branch 'contracts'