change clone method to __clone