use guard handler to wrap request