updated lots of stuff, added next, prev, reset