fix advance logic