protected void removeLayoutObject(T layoutObject){
		if (layoutObject == null){
			throw new IllegalArgumentException("layoutObject cannot be null");
		}
		removeBuffer.add(layoutObject);
		layoutObject.deleteObserver(this);
		
		SwingUtilities.invokeLater(new Runnable(){
			public void run(){
				T newLayoutObject = removeBuffer.remove();
				if (layoutObjects.remove(newLayoutObject)){
					repaint(getRepaintRectangle(newLayoutObject));
				}
			}
		});
	}