https://github.com/etoitau/Design-Patterns/blob/master/State/src/main/java/com/etoitau/designpatterns/state/Main.java