major cleanup and refactoring effort... response specific type handling is working as desired