First working version, except for save and load