added Validation and Test