implement persistance by issue #15