implement duel API