Added contracts for constructors. Contracts now use Maybe.