why pass $package when all the other structure is focus on $namespace, it does add a little inconsistency.