reconstruct
redo ly-diff for better understanding