HandlerState doesn't need to be static