optimize for the reverse direction