Replaced with new design
Don't allow overwriting states
Interceptor is an interface, no need for .cpp
Make use of getState