https://howtodoinjava.com/java/serialization/a-mini-guide-for-implementing-serializable-interface-in-java/