Advancer Pattern
See
WhatIsAnAdvancer