Add a copy function

This fixes gh-48