Refactored a lot of code
refactor Request