vector clock implementation