Self validating (20/25)

Self validating