bound inversion logic to shapes