reorder
refactor digest