added some central caching and config, as well as rules through rules.json