ThresholdService: split iface and impl