code refactor to use same prepareRequest method for both 'agent' and 'proxy' mode closes #1031 closes #1050 closes #473