more thoughts on what the firmware class should do