break into more components for validation