add generic request method