class CopiableStructure implements Serializable {

	public CopiableStructure copy() {
		try {
			final ByteArrayOutputStream bos = new ByteArrayOutputStream();
			@SuppressWarnings("resource")
			final
			ObjectOutputStream oos = new ObjectOutputStream(bos);
			oos.writeObject(this);
			oos.flush();
			final ByteArrayInputStream bin = new ByteArrayInputStream(
					bos.toByteArray());
			@SuppressWarnings("resource")
			final
			ObjectInputStream ois = new ObjectInputStream(bin);
			final CopiableStructure result = (CopiableStructure) ois.readObject();
			oos.close();
			ois.close();
			return result;
		} catch (final Exception e) {
			e.printStackTrace();
			System.exit(1);
		}
		return null; // Unreachable
	}

	public  CopiableStructure();

}