refactory the package, make it easier to go with