Some components, as `result` returns a lot of JSX. Some other, like `App`, contains a lot of local state. Granularity can certainly be improved