some refactoring and addition of response object classes in order to round out what is currently known