define clone implement by ourself