add completion blocks