add improved iso implementation