add completion hook