add equals_deep and mapper util functions for "map" feature