seperate hub to be just ui component