Added stop, backwards behavior, assorted other stuff, merged format to my version