This component will need to be refactored later to make it fully reusable. Tried to think of a quick way to do it but it's not trivial.