add requests and refactoring