enough type checking is enough