Add data-saving methods and customisable serialisation
Merge branch 'release/v1.8'