Ta
Take contract out into its own class