change substract to use map with default value.