implemented load() and save()