fixed some things with class contract:

now inheritance also works properly:

we added a warn mode to the contract applied to the prototype since we can't know what should and shouldn't exist. updated test cases accordingly