Implemented copy constructor

Now we can create a new generic type using any old one