added saving and loading - still a work in progress