Designing the UI with stateful components and stateless functional components