added snapshot ability, each snapshot will entail the copying a region of memory and saving that to disk, will run in sperate thread