private boolean internalRemove(Investment investment) {
		PortfolioIterator iterator = new PortfolioIterator();
		
		Investment i;
		boolean removed = false;
		while (iterator.hasNext()) {
			i = iterator.next();
			
			//	case where Investment to remove is a top-level investment
			if (i.getUniqueId() == investment.getUniqueId()) {
				this.children.remove(i);
				removed = true;
				break;
			}
			
			
			//	case where investment may be in a Portfolio
			//	check the contents of the Portfolio for the Investment to remove
			if (i.getClass() == Portfolio.class) {
				Portfolio p = (Portfolio)i;
				removed = p.internalRemove(investment);
			}
			
			if (removed) break;
			
		}
		
		return removed;
		
	}