public IFilteredInput Filter()
        {
            if (null == _stateProvider)
            {
                return(null);
            }
            _stateProvider.ApplyStates(this);
            var userInput = _userInput as IFilteredInput;

            foreach (var state in _gameStates)
            {
                if (null != state)
                {
                    state.FilterInput(userInput);
                }
                else
                {
                    Logger.Error("state is null !");
                }
            }
            return(userInput);
        }