renamed advance() to advanceBy()