reversing mostly working - can deadlock when stopping early before reverse