@Override
	public SimpleGraph remove(GraphComponent component)
	{
		if(component == null)
			throw new IllegalArgumentException("given components is null.");
		if(!contains(component))
			lr(this, "component [] not contained", component);
		if(component instanceof Node)
			nodes.remove(component);
		else if(component instanceof Edge)
		{
			Edge edge = (Edge) component;
			if(contains(edge.getFrom()))
				nodes.get(edge.getFrom()).getOutEdges().remove(edge);
			if(contains(edge.getTo()))
				nodes.get(edge.getTo()).getInEdges().remove(edge);
			edges.remove(edge);
		}
		else
			throw new IllegalArgumentException("Given component is not one of Node, Edge.");
		return this;
	}