separate mainComponent for haste