refactoring constructor (clone).