code: @Override
  	public Atom next()
  	throws NoSuchElementException
  	{
  		current_atom_pos++ ;
  		if ( current_atom_pos >= group.size() ) {
  			if ( groupiter == null ) {
  				throw new NoSuchElementException("no more atoms found in group!");
  
  			}
  			if ( groupiter.hasNext() ) {
  				group = groupiter.next() ;
  				current_atom_pos = -1 ;
  				return next();
  			} else {
  				throw new NoSuchElementException("no more atoms found in structure!");
  			}
  		}
  
  		Atom a ;
  
  
  		a = group.getAtom(current_atom_pos);
  		if ( a == null) {
  			logger.error("current_atom_pos {} group {} size: {}", current_atom_pos, group, group.size());
  
  			throw new NoSuchElementException("error wile trying to retrieve atom");
  		}
  
  		return a ;
  
  	}
docs: Return next atom.
  
  @return the next Atom
  @throws NoSuchElementException if there is no atom after the current one