better column type checking