Refactored cmp exp builder