add validations - needs refactor