diff --git a/README.md b/README.md
index e96158526..55b396b0e 100644
--- a/README.md
+++ b/README.md
@@ -353,7 +353,7 @@ A programming idiom is a means of expressing a recurring construct in one or mor
## Memento [↑](#list-of-design-patterns)
**Intent:** Without violating encapsulation, capture and externalize an object's internal state so that the object can be restored to this state later.
-
+
**Applicability:** Use the Memento pattern when
* a snapshot of an object's state must be saved so that it can be restored to that state later, and
diff --git a/memento/etc/memento.jpg b/memento/etc/memento.jpg
deleted file mode 100644
index 0b9f89cbd..000000000
Binary files a/memento/etc/memento.jpg and /dev/null differ
diff --git a/memento/etc/memento.png b/memento/etc/memento.png
new file mode 100644
index 000000000..dcfe7a749
Binary files /dev/null and b/memento/etc/memento.png differ
diff --git a/memento/etc/test.ucls b/memento/etc/memento.ucls
similarity index 68%
rename from memento/etc/test.ucls
rename to memento/etc/memento.ucls
index 5c29ef69d..a9455cbbe 100644
--- a/memento/etc/test.ucls
+++ b/memento/etc/memento.ucls
@@ -1,65 +1,65 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
-
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
+
+
diff --git a/memento/etc/memento_1.png b/memento/etc/memento_1.png
deleted file mode 100644
index f34e5f356..000000000
Binary files a/memento/etc/memento_1.png and /dev/null differ
diff --git a/memento/src/main/java/com/iluwatar/Star.java b/memento/src/main/java/com/iluwatar/Star.java
index 196290768..52b76d53b 100644
--- a/memento/src/main/java/com/iluwatar/Star.java
+++ b/memento/src/main/java/com/iluwatar/Star.java
@@ -1,69 +1,105 @@
-package com.iluwatar;
-
-/**
- *
- * Star uses "mementos" to store and restore state.
- *
- */
-public class Star {
-
- private StarType type;
- private int ageYears;
- private int massTons;
-
- public Star(StarType startType, int startAge, int startMass) {
- this.type = startType;
- this.ageYears = startAge;
- this.massTons = startMass;
- }
-
- public void timePasses() {
- ageYears *= 2;
- massTons *= 8;
- switch (type) {
- case RED_GIANT:
- type = StarType.WHITE_DWARF;
- break;
- case SUN:
- type = StarType.RED_GIANT;
- break;
- case SUPERNOVA:
- type = StarType.DEAD;
- break;
- case WHITE_DWARF:
- type = StarType.SUPERNOVA;
- break;
- case DEAD:
- ageYears *= 2;
- massTons = 0;
- break;
- default:
- break;
- }
- }
-
- StarMemento getMemento() {
-
- StarMementoInternal state = new StarMementoInternal();
- state.setAgeYears(ageYears);
- state.setMassTons(massTons);
- state.setType(type);
- return state;
-
- }
-
- void setMemento(StarMemento memento) {
-
- StarMementoInternal state = (StarMementoInternal) memento;
- this.type = state.getType();
- this.ageYears = state.getAgeYears();
- this.massTons = state.getMassTons();
-
- }
-
- @Override
- public String toString() {
- return String.format("%s age: %d years mass: %d tons", type.toString(),
- ageYears, massTons);
- }
-}
+package com.iluwatar;
+
+/**
+ *
+ * Star uses "mementos" to store and restore state.
+ *
+ */
+public class Star {
+
+ private StarType type;
+ private int ageYears;
+ private int massTons;
+
+ public Star(StarType startType, int startAge, int startMass) {
+ this.type = startType;
+ this.ageYears = startAge;
+ this.massTons = startMass;
+ }
+
+ public void timePasses() {
+ ageYears *= 2;
+ massTons *= 8;
+ switch (type) {
+ case RED_GIANT:
+ type = StarType.WHITE_DWARF;
+ break;
+ case SUN:
+ type = StarType.RED_GIANT;
+ break;
+ case SUPERNOVA:
+ type = StarType.DEAD;
+ break;
+ case WHITE_DWARF:
+ type = StarType.SUPERNOVA;
+ break;
+ case DEAD:
+ ageYears *= 2;
+ massTons = 0;
+ break;
+ default:
+ break;
+ }
+ }
+
+ StarMemento getMemento() {
+
+ StarMementoInternal state = new StarMementoInternal();
+ state.setAgeYears(ageYears);
+ state.setMassTons(massTons);
+ state.setType(type);
+ return state;
+
+ }
+
+ void setMemento(StarMemento memento) {
+
+ StarMementoInternal state = (StarMementoInternal) memento;
+ this.type = state.getType();
+ this.ageYears = state.getAgeYears();
+ this.massTons = state.getMassTons();
+
+ }
+
+ @Override
+ public String toString() {
+ return String.format("%s age: %d years mass: %d tons", type.toString(),
+ ageYears, massTons);
+ }
+
+ /**
+ *
+ * StarMemento implementation
+ *
+ */
+ private static class StarMementoInternal implements StarMemento {
+
+ private StarType type;
+ private int ageYears;
+ private int massTons;
+
+ public StarType getType() {
+ return type;
+ }
+
+ public void setType(StarType type) {
+ this.type = type;
+ }
+
+ public int getAgeYears() {
+ return ageYears;
+ }
+
+ public void setAgeYears(int ageYears) {
+ this.ageYears = ageYears;
+ }
+
+ public int getMassTons() {
+ return massTons;
+ }
+
+ public void setMassTons(int massTons) {
+ this.massTons = massTons;
+ }
+ }
+}
diff --git a/memento/src/main/java/com/iluwatar/StarMementoInternal.java b/memento/src/main/java/com/iluwatar/StarMementoInternal.java
deleted file mode 100644
index 9962b79fb..000000000
--- a/memento/src/main/java/com/iluwatar/StarMementoInternal.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.iluwatar;
-
-/**
- *
- * Internal interface to memento.
- *
- */
-public class StarMementoInternal implements StarMemento {
-
- private StarType type;
- private int ageYears;
- private int massTons;
-
- public StarType getType() {
- return type;
- }
-
- public void setType(StarType type) {
- this.type = type;
- }
-
- public int getAgeYears() {
- return ageYears;
- }
-
- public void setAgeYears(int ageYears) {
- this.ageYears = ageYears;
- }
-
- public int getMassTons() {
- return massTons;
- }
-
- public void setMassTons(int massTons) {
- this.massTons = massTons;
- }
-}