refactory of GestureListLayout