add more logic for SOMDiff