public boolean compareId(Object o) {
		
		if (o == null) return false;
		
		//if (!o.modelImplementation().equals(type)) return false;
		
		String id = factory.getCache().getModelId(type);
		Class idType = factory.getCache().getModelIdType(type);
		
		if (!o.getClass().equals(idType)) return false;
		
		if (idType == Integer.TYPE) {
			int idVal = (Integer) fields().get(id);
			int idObj = (Integer) o;
			
			if (idVal == idObj) return true;
			else return false;
		}
		
		if (idType == String.class) {
			String idVal = (String) fields().get(id);
			String idObj = (String) o;
			if (idVal.equals(idObj)) return true;
			else return false;
		}
		
		throw new ModelRuntimeException("Unattended");
	}