initial clone implementation