start moving request handling into common method