finished most of the validations