added private __clone(), declared class as final