switch to a more sensible structure for request handling
final tweak