Smart caching

Also includes various other changes, such as moving `sx-question--<` to `sx--<` and fixing requires.