type checking component