begin with adding functionality for saving versions
version structure works
version functionality