Completed schema contract.  Needs testing.