Hub refactor