Added serializable and reworked save/load methods