flipper: optimise snap function