added has3d() kv