add completion callback implementation.