decouple package dependency