Cleaner hiera implementation with non-hiera support for npms