function is duplicate.