added advance()