keys = stations.keySet().iterator();
while (keys.hasNext()) {
oldkey = keys.next();
// Creates a new station with parameters got from previous copy operation
newkey = sd.deserializeStation(stations.get(oldkey));
newcell = mediator.getCellFactory().createCell(sd.getStationType(newkey) + "Cell", new CellComponent(newkey, sd));
tempkey.put(oldkey, newkey);
// Calculates where this station should be put
oldpos = stationpositions.get(oldkey);
newpos = new Point2D.Double(where.getX() + oldpos.getX() - zero.getX(), where.getY() + oldpos.getY() - zero.getY());
// Insert created station into JGraph. Finds the first empty position going