Add a new "New" method to the Interface

This is needed mainly to create a new set from other methods where we do not have any knowledge about the underlying struct. Also this will be helpful for #13