Add hub, modularise and fix offset