add some optional flags to affect the way advance works.