GPII-228: Implementation of snapshotter

Still needs tests!