refactor validation
remove to_s because it will happen anyway