reimplemented zoom and shove