public PopStateMessage(GameState curState)
        {
            if(curState == null)
                throw new NullReferenceException("Cannot Make PopStateMessage without valid current state");

            this.curState = curState;
        }
        public PushNewStateMessage(GameState newState)
        {
            //make sure the state is valid
            if (newState == null)
                throw new NullReferenceException("Cannot Make PushNewStateMessage without valid target state");

            targetState = newState;
        }