refactored request method to support different triggers