making a more uniform request library