Index: applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/AddressEditContainer.java
===================================================================
--- applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/AddressEditContainer.java	(revision 24089)
+++ applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/AddressEditContainer.java	(revision 24090)
@@ -105,5 +105,5 @@
 	 */
 	public AddressEditContainer() {
-		NodeEntityBase.addChangedListener(this);
+		OSMEntityBase.addChangedListener(this);
 	}
 
Index: applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/AddressNode.java
===================================================================
--- applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/AddressNode.java	(revision 24089)
+++ applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/AddressNode.java	(revision 24090)
@@ -22,5 +22,5 @@
  * wrapper for a OSM node in order to simplify tag handling.
  */
-public class AddressNode extends NodeEntityBase {
+public class AddressNode extends OSMEntityBase {
 	public static final String MISSING_TAG = "?";
 	
Index: applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/NodeEntityBase.java
===================================================================
--- applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/NodeEntityBase.java	(revision 24089)
+++ 	(revision )
@@ -1,214 +1,0 @@
-/*
- * This program is free software: you can redistribute it and/or modify it under 
- * the terms of the GNU General Public License as published by the 
- * Free Software Foundation, either version 3 of the License, or 
- * (at your option) any later version. 
- * 
- * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
- * See the GNU General Public License for more details. 
- * 
- * You should have received a copy of the GNU General Public License along with this program. 
- * If not, see <http://www.gnu.org/licenses/>.
- */
-package org.openstreetmap.josm.plugins.fixAddresses;
-
-import static org.openstreetmap.josm.tools.I18n.tr;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.openstreetmap.josm.command.ChangePropertyCommand;
-import org.openstreetmap.josm.command.Command;
-import org.openstreetmap.josm.data.coor.LatLon;
-import org.openstreetmap.josm.data.osm.BBox;
-import org.openstreetmap.josm.data.osm.Node;
-import org.openstreetmap.josm.data.osm.OsmPrimitive;
-import org.openstreetmap.josm.data.osm.Way;
-
-/**
- * The class NodeEntityBase provides a base implementation for the {@link IOSMEntity} interface.
- * 
- * The implementation comprises
- * <ol>
- * <li>Handle change listeners
- * <li>Links the corresponding OSM object
- * <li>Tag handling
- * </ol>
- */
-public class NodeEntityBase implements IOSMEntity, Comparable<IOSMEntity> {
-	public static final String ANONYMOUS = tr("No name");
-	private static List<IAddressEditContainerListener> containerListeners = new ArrayList<IAddressEditContainerListener>();
-	private List<ICommandListener> cmdListeners = new ArrayList<ICommandListener>();
-	
-	protected OsmPrimitive osmObject;
-	
-	/**
-	 * @param osmObject
-	 */
-	public NodeEntityBase(OsmPrimitive osmObject) {
-		super();
-		this.osmObject = osmObject;
-	}
-	
-	/**
-	 * @param osmObject the osmObject to set
-	 */
-	protected void setOsmObject(OsmPrimitive osmObject) {
-		this.osmObject = osmObject;
-	}
-
-	/**
-	 * Adds a change listener.
-	 * @param listener
-	 */
-	public static void addChangedListener(IAddressEditContainerListener listener) {
-		containerListeners.add(listener);
-	}
-	
-	/**
-	 * Removes a change listener.
-	 * @param listener
-	 */
-	public static void removeChangedListener(IAddressEditContainerListener listener) {
-		containerListeners.remove(listener);
-	}
-	
-	/**
-	 * Notifies clients that the address container changed.
-	 */
-	protected static void fireEntityChanged(IOSMEntity entity) {
-		for (IAddressEditContainerListener listener : containerListeners) {
-			listener.entityChanged(entity);
-		}
-	}
-	
-	/**
-	 * Adds a command listener.
-	 * @param listener
-	 */
-	public void addCommandListener(ICommandListener listener) {
-		cmdListeners.add(listener);
-	}
-	
-	/**
-	 * Removes a command listener.
-	 * @param listener
-	 */
-	public void removeCommandListener(ICommandListener listener) {
-		cmdListeners.remove(listener);
-	}
-	
-	/**
-	 * Notifies clients that an entity has issued a command.
-	 *
-	 * @param source the entity that issued the command.
-	 * @param cmd the command to execute.
-	 */
-	protected void fireCommandIssued(Command cmd) {
-		if (cmdListeners.size() == 0) {
-			throw new RuntimeException("Object has no TX context: " + this);
-		}
-		
-		for (ICommandListener l : cmdListeners) {
-			l.commandIssued(this, cmd);
-		}
-	}	
-
-	public OsmPrimitive getOsmObject() {
-		return osmObject;
-	}
-
-	@Override
-	public List<IOSMEntity> getChildren() {
-		return null;
-	}
-
-	@Override
-	/**
-	 * Gets the name of the street or ANONYMOUS, if street has no name.
-	 * @return
-	 */
-	public String getName() {
-		if (TagUtils.hasNameTag(osmObject)) {
-			return  TagUtils.getNameValue(osmObject);
-		}
-		return "";
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.openstreetmap.josm.plugins.addressEdit.INodeEntity#hasName()
-	 */
-	@Override
-	public boolean hasName() {
-		return TagUtils.hasNameTag(osmObject);
-	}
-	
-	/**
-	 * Internal helper method which changes the given property and
-	 * puts the appropriate command {@link src.org.openstreetmap.josm.command.Command}
-	 * into the undo/redo queue.
-	 * @param tag The tag to change.
-	 * @param newValue The new value for the tag.
-	 * @param cmd The surrounding command sequence
-	 */
-	protected void setOSMTag(String tag, String newValue) {
-		if (StringUtils.isNullOrEmpty(tag)) return;
-		
-		if (osmObject != null) {
-			if ((osmObject.hasKey(tag) && newValue == null) || newValue != null) {			
-				fireCommandIssued(new ChangePropertyCommand(osmObject, tag, newValue));
-				fireEntityChanged(this);
-			}
-		} 
-	}
-	
-	/**
-	 * Removes the given tag from the OSM object.
-	 *
-	 * @param tag the tag
-	 */
-	protected void removeOSMTag(String tag) {
-		setOSMTag(tag, null); // a value of null removes the tag
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#toString()
-	 */
-	@Override
-	public String toString() {
-		if (hasName()) {
-			return this.getClass().getName() + ": " + getName();
-		}
-		return this.getClass().getName() + ": " + ANONYMOUS;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Comparable#compareTo(java.lang.Object)
-	 */
-	@Override
-	public int compareTo(IOSMEntity o) {
-		if (o == null || !(o instanceof NodeEntityBase)) return -1;
-		return this.getName().compareTo(o.getName());
-	}
-
-	/* (non-Javadoc)
-	 * @see org.openstreetmap.josm.plugins.fixAddresses.IOSMEntity#getCoor()
-	 */
-	@Override
-	public LatLon getCoor() {
-		OsmPrimitive osm = getOsmObject();
-		if (osm == null) return null;
-		
-		if (osm instanceof Node) {
-			return ((Node)osm).getCoor();
-		// way: return center
-		} else if (osm instanceof Way) {
-			Way w = (Way) osm;
-			BBox bb = w.getBBox();
-			return bb.getBottomRight().getCenter(bb.getTopLeft());
-		}
-		// relations??
-		return null;
-	}
-}
Index: applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/OSMEntityBase.java
===================================================================
--- applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/OSMEntityBase.java	(revision 24090)
+++ applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/OSMEntityBase.java	(revision 24090)
@@ -0,0 +1,214 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under 
+ * the terms of the GNU General Public License as published by the 
+ * Free Software Foundation, either version 3 of the License, or 
+ * (at your option) any later version. 
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+ * See the GNU General Public License for more details. 
+ * 
+ * You should have received a copy of the GNU General Public License along with this program. 
+ * If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.openstreetmap.josm.plugins.fixAddresses;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.openstreetmap.josm.command.ChangePropertyCommand;
+import org.openstreetmap.josm.command.Command;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.BBox;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Way;
+
+/**
+ * The class OSMEntityBase provides a base implementation for the {@link IOSMEntity} interface.
+ * 
+ * The implementation comprises
+ * <ol>
+ * <li>Handle change listeners
+ * <li>Links the corresponding OSM object
+ * <li>Tag handling
+ * </ol>
+ */
+public class OSMEntityBase implements IOSMEntity, Comparable<IOSMEntity> {
+	public static final String ANONYMOUS = tr("No name");
+	private static List<IAddressEditContainerListener> containerListeners = new ArrayList<IAddressEditContainerListener>();
+	private List<ICommandListener> cmdListeners = new ArrayList<ICommandListener>();
+	
+	protected OsmPrimitive osmObject;
+	
+	/**
+	 * @param osmObject
+	 */
+	public OSMEntityBase(OsmPrimitive osmObject) {
+		super();
+		this.osmObject = osmObject;
+	}
+	
+	/**
+	 * @param osmObject the osmObject to set
+	 */
+	protected void setOsmObject(OsmPrimitive osmObject) {
+		this.osmObject = osmObject;
+	}
+
+	/**
+	 * Adds a change listener.
+	 * @param listener
+	 */
+	public static void addChangedListener(IAddressEditContainerListener listener) {
+		containerListeners.add(listener);
+	}
+	
+	/**
+	 * Removes a change listener.
+	 * @param listener
+	 */
+	public static void removeChangedListener(IAddressEditContainerListener listener) {
+		containerListeners.remove(listener);
+	}
+	
+	/**
+	 * Notifies clients that the address container changed.
+	 */
+	protected static void fireEntityChanged(IOSMEntity entity) {
+		for (IAddressEditContainerListener listener : containerListeners) {
+			listener.entityChanged(entity);
+		}
+	}
+	
+	/**
+	 * Adds a command listener.
+	 * @param listener
+	 */
+	public void addCommandListener(ICommandListener listener) {
+		cmdListeners.add(listener);
+	}
+	
+	/**
+	 * Removes a command listener.
+	 * @param listener
+	 */
+	public void removeCommandListener(ICommandListener listener) {
+		cmdListeners.remove(listener);
+	}
+	
+	/**
+	 * Notifies clients that an entity has issued a command.
+	 *
+	 * @param source the entity that issued the command.
+	 * @param cmd the command to execute.
+	 */
+	protected void fireCommandIssued(Command cmd) {
+		if (cmdListeners.size() == 0) {
+			throw new RuntimeException("Object has no TX context: " + this);
+		}
+		
+		for (ICommandListener l : cmdListeners) {
+			l.commandIssued(this, cmd);
+		}
+	}	
+
+	public OsmPrimitive getOsmObject() {
+		return osmObject;
+	}
+
+	@Override
+	public List<IOSMEntity> getChildren() {
+		return null;
+	}
+
+	@Override
+	/**
+	 * Gets the name of the street or ANONYMOUS, if street has no name.
+	 * @return
+	 */
+	public String getName() {
+		if (TagUtils.hasNameTag(osmObject)) {
+			return  TagUtils.getNameValue(osmObject);
+		}
+		return "";
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.openstreetmap.josm.plugins.addressEdit.INodeEntity#hasName()
+	 */
+	@Override
+	public boolean hasName() {
+		return TagUtils.hasNameTag(osmObject);
+	}
+	
+	/**
+	 * Internal helper method which changes the given property and
+	 * puts the appropriate command {@link src.org.openstreetmap.josm.command.Command}
+	 * into the undo/redo queue.
+	 * @param tag The tag to change.
+	 * @param newValue The new value for the tag.
+	 * @param cmd The surrounding command sequence
+	 */
+	protected void setOSMTag(String tag, String newValue) {
+		if (StringUtils.isNullOrEmpty(tag)) return;
+		
+		if (osmObject != null) {
+			if ((osmObject.hasKey(tag) && newValue == null) || newValue != null) {			
+				fireCommandIssued(new ChangePropertyCommand(osmObject, tag, newValue));
+				fireEntityChanged(this);
+			}
+		} 
+	}
+	
+	/**
+	 * Removes the given tag from the OSM object.
+	 *
+	 * @param tag the tag
+	 */
+	protected void removeOSMTag(String tag) {
+		setOSMTag(tag, null); // a value of null removes the tag
+	}
+
+	/* (non-Javadoc)
+	 * @see java.lang.Object#toString()
+	 */
+	@Override
+	public String toString() {
+		if (hasName()) {
+			return this.getClass().getName() + ": " + getName();
+		}
+		return this.getClass().getName() + ": " + ANONYMOUS;
+	}
+
+	/* (non-Javadoc)
+	 * @see java.lang.Comparable#compareTo(java.lang.Object)
+	 */
+	@Override
+	public int compareTo(IOSMEntity o) {
+		if (o == null || !(o instanceof OSMEntityBase)) return -1;
+		return this.getName().compareTo(o.getName());
+	}
+
+	/* (non-Javadoc)
+	 * @see org.openstreetmap.josm.plugins.fixAddresses.IOSMEntity#getCoor()
+	 */
+	@Override
+	public LatLon getCoor() {
+		OsmPrimitive osm = getOsmObject();
+		if (osm == null) return null;
+		
+		if (osm instanceof Node) {
+			return ((Node)osm).getCoor();
+		// way: return center
+		} else if (osm instanceof Way) {
+			Way w = (Way) osm;
+			BBox bb = w.getBBox();
+			return bb.getBottomRight().getCenter(bb.getTopLeft());
+		}
+		// relations??
+		return null;
+	}
+}
Index: applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/StreetNode.java
===================================================================
--- applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/StreetNode.java	(revision 24089)
+++ applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/StreetNode.java	(revision 24090)
@@ -26,5 +26,5 @@
  * @author Oliver Wieland <oliver.wieland@online.de>
  */
-public class StreetNode extends NodeEntityBase {
+public class StreetNode extends OSMEntityBase {
 	private List<IOSMEntity> children;
 	private List<AddressNode> addresses;
Index: applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/StreetSegmentNode.java
===================================================================
--- applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/StreetSegmentNode.java	(revision 24089)
+++ applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/StreetSegmentNode.java	(revision 24090)
@@ -26,5 +26,5 @@
  */
 
-public class StreetSegmentNode extends NodeEntityBase {
+public class StreetSegmentNode extends OSMEntityBase {
 
 	public StreetSegmentNode(OsmPrimitive osmObject) {
