Added contracts and enums