Add EJS caching and error catching
Attempt a few performance tweaks, add a benchmark