Reorganize to allow for firmware