moved validation to clean method