private boolean hasSameProperties(ObjectRepresentation other)
	{
		// different size
		if (props.size() != other.props.size())
		{
			return false;
		}
		for (int x = 0; x < props.size(); x++)
		{
			String fromProp = props.get(x);
			int toIndex = other.props.indexOf(fromProp);
			if (toIndex < 0)
			{
				// other object does not have property
				return false;
			}
			// check that the return type is the same
			if (!returnTypes.get(x).equals(other.returnTypes.get(toIndex)))
			{
				// return types differ
				return false;
			}
			if(getColumnSize(fromProp) != other.getColumnSize(fromProp) )
			{
				//sizes differ
				return false;
			}
		}
		// all properties and return types match
		return true;
	}