http-add-on decisions: why the code looks like this