finally, firmware reorganization