public MoveResult Move( Direction d ) { if ( m_Mover == null ) return ( m_From.Move( d ) ? MoveResult.Success : MoveResult.Blocked ); return m_Mover( d ); }