This is hard to really answer without implementing it, but I think my first try would be to have a state tree like:{ntlights: [ an array of true/false for every light on the board ],ntnumButtonClicks: numbern}nAnd the component structure would be:class Board extends React.PureComponent {n render {n const lights = this.props.lights.map(state = Light state={state} /),n }n}nYou map the u201clightsu201d state to the props of the Board in your connect function. The board passes down the state to each light.So every u201cLightu201d would just get true or false - the state it should display. I would use just the action creator you suggested:const actionCreators = {n toggleLight: (lightId) = { return { type: LIGHT_TOGGLE, id: lightId }, }n}nBut the board would not contain any logic. The reducer would decide which lights to toggle, how to increment the button clicks, and so on.You would then need one more action, for reset. And that should be itu2026