folder re-org to separate device code from generic code