add advance, and some tests for reducers