a step commit, a rough structure and this can achieve the primitive requirement.