added macros to disable contract checks at compile time