added 'clone' method + tests