CLEANUP: minor cleanups
CLEANUP: separated loading/saving code to separate files
CLEANUP: Added license