A contract between 2 parties might evolve a period of time. This would mean probably more data (storage variables) and modification in byte code. Are there any thoughts around versioning of smart contracts? Should we just hold version as a storage variable? How would Dapps handle multiple versions?