better column type handling