implement some more operations in terms of unfold