updated compare macro