Reorganizing setup to separate required from optional packages