add di, use implicit