project save/load, refactors