Added data contracts and validation.