Add snapshot mechanism that partially works