Added allowsTrampling and rewrote the code a bit