public boolean lowerThan(VectorClock other){
		for (Entry<String, Integer> entry : vclock.entrySet()) {
			String pid = entry.getKey();
			if(!other.vclock.containsKey(pid)){
				other.vclock.put(pid, 0); //zero is default value
			}
		}
		
		for (Entry<String, Integer> entry : other.vclock.entrySet()) {
			String pid = entry.getKey();
			if(!vclock.containsKey(pid)){
				vclock.put(pid, 0); //zero is default value
			}
		}
		
		boolean hasBigger = false;
		boolean hasAtLeastOneSmaller = false;
		
		for (Entry<String, Integer> entry : vclock.entrySet()) {
			String pid = entry.getKey();
			int val1 = entry.getValue();
			int val2 = other.vclock.get(pid);
			if(val1 > val2){
				hasBigger = true;
				break;
			}
			if(val1 < val2){
				hasAtLeastOneSmaller = true;
			}
			
		}
		
		return hasAtLeastOneSmaller && !hasBigger;
	}