component validation