add demo with saving/loading