Add more perfect forwarding and do some refactoring.
Add perfect forwarding in the Foldable mcds.