added StateSnapshot method implementation