The TOS/PP stuff should move out of here and into its own module so that each can be thought about and verified independently.