- recreate the concept - state - reducer - dispatch - Store - middleware ``` Store { state private reducer(state, action) { switch(action) { return state.copy(); } } dispatch(action) { return reducer(state, action) } } action: {type: string, payload: any} ```