input interceptor