rewrite it to be configurable

This adds support for a json file to configure.

It also does some major changes to the way paths are handled, so you should be able to use your default require config