add completion block