Interceptors implemented on top of pipelines.
Interceptors pipeline must implement the
Interceptor can change the method arguments or the return value.
Interceptor can decorate class method and argument.
if the interceptor decorate a class it will run on all class methods.
you can also throw your own custom error