Adds Result object and updates Validator to return a ResultInterface rather than true/false