Initial Copy implementation. Threaded implementation currently
causes a deadlock :-)