function collect_non_deterministic( Grammar $Grammar, $k ){
		
		// avoid recursion by testing if already collected
		if ( isset($this->etransitions) ){
			return;
		}
		$this->etransitions = array();
		
		// get all rules with our non-terminal as left had side
		foreach( $Grammar->get_rules($this->nt) as $r => $rule ){
			// create single Item for new state with pointer at start of rule
			$Item = LRItem::make( $r, $rule, 0 );
			if( isset($this->la) && $k === 1 ){ 
				$Item->lookahead( $this->la );
			}
			// create e-transition to state with single item
			$State = LRState::make( $Item );
			$State->collect_non_deterministic( $Grammar, $k );
			$this->etransitions[] = $State;
		}
	}