type checking interface and tests for it