-Refactor modes to hold all functionality in their own package