Rearrange code a little & demodularise
Content negotiate error routes