cleaned up validation with ignoring id field