TODO: - [ ] Write test for components - [ ] Create code splitting - [ ] Make service worker - [ ] Use cashing - [ ] More compact and simple code