externalized version