diff --git a/src/_zkapauthorizer/_plugin.py b/src/_zkapauthorizer/_plugin.py
index 2c80e2a3c535ec2b8416fddfdcecb84036cab99f..8ae7fbeb74d5c01a70a2d54bc6f36d78b1b98958 100644
--- a/src/_zkapauthorizer/_plugin.py
+++ b/src/_zkapauthorizer/_plugin.py
@@ -37,7 +37,6 @@ from .config import lease_maintenance_from_tahoe_config
 from .controller import get_redeemer
 from .lease_maintenance import (
     SERVICE_NAME,
-    LeaseMaintenanceConfig,
     lease_maintenance_service,
     maintain_leases_from_root,
 )
diff --git a/src/_zkapauthorizer/config.py b/src/_zkapauthorizer/config.py
index ee98742bc6b4bca541dabd62f71114cad5887654..b6f9f19484f4058d6bfd469846e614a2cee3df03 100644
--- a/src/_zkapauthorizer/config.py
+++ b/src/_zkapauthorizer/config.py
@@ -18,8 +18,14 @@ Helpers for reading values from the Tahoe-LAFS configuration.
 
 from datetime import timedelta
 
+try:
+    from typing import Optional
+except ImportError:
+    pass
+
 from .lease_maintenance import LeaseMaintenanceConfig
 
+from allmydata.node import _Config
 
 class _EmptyConfig(object):
     """
diff --git a/src/_zkapauthorizer/lease_maintenance.py b/src/_zkapauthorizer/lease_maintenance.py
index da19a99ab563202541467e88939c562b2f0cc9ec..49adebf5253260cbf214a0671d284cb698c061dd 100644
--- a/src/_zkapauthorizer/lease_maintenance.py
+++ b/src/_zkapauthorizer/lease_maintenance.py
@@ -21,6 +21,11 @@ from datetime import datetime, timedelta
 from errno import ENOENT
 from functools import partial
 
+try:
+    from typing import Any, Dict
+except ImportError:
+    pass
+
 import attr
 from allmydata.interfaces import IDirectoryNode, IFilesystemNode
 from allmydata.util.hashutil import (
@@ -390,7 +395,7 @@ def lease_maintenance_service(
     """
     interval_mean = lease_maint_config.crawl_interval_mean
     interval_range = lease_maint_config.crawl_interval_range
-    halfrange = lease_maint_config.crawl_interval_range / 2
+    halfrange = interval_range / 2
 
     def sample_interval_distribution():
         return timedelta(
diff --git a/src/_zkapauthorizer/tests/strategies.py b/src/_zkapauthorizer/tests/strategies.py
index 1808c4187e47a4812143387e88d75c507669d9e7..6cf2806d56c0f48ac6af30517bf33869284e33c9 100644
--- a/src/_zkapauthorizer/tests/strategies.py
+++ b/src/_zkapauthorizer/tests/strategies.py
@@ -30,7 +30,6 @@ from hypothesis.strategies import (
     datetimes,
     dictionaries,
     fixed_dictionaries,
-    floats,
     integers,
     just,
     lists,
@@ -40,7 +39,6 @@ from hypothesis.strategies import (
     sampled_from,
     sets,
     text,
-    timedeltas,
     tuples,
 )
 from twisted.internet.defer import succeed
diff --git a/src/_zkapauthorizer/tests/test_lease_maintenance.py b/src/_zkapauthorizer/tests/test_lease_maintenance.py
index 49278eae88f42a190c3e5e9f85b8c389697fa286..02e2230c2ae2b6ad9b4d97e7c9149aeceb928722 100644
--- a/src/_zkapauthorizer/tests/test_lease_maintenance.py
+++ b/src/_zkapauthorizer/tests/test_lease_maintenance.py
@@ -31,7 +31,6 @@ from hypothesis.strategies import (
     builds,
     composite,
     dictionaries,
-    floats,
     integers,
     just,
     lists,
@@ -87,22 +86,6 @@ except ImportError:
 
 default_lease_maint_config = lease_maintenance_from_tahoe_config(empty_config)
 
-def interval_means():
-    return floats(
-        # It doesn't make sense to have a negative check interval mean.
-        min_value=0,
-        # We can't make this value too large or it isn't convertable to a
-        # timedelta.  Also, even values as large as this one are of
-        # questionable value.
-        max_value=60 * 60 * 24 * 365,
-    ).map(
-        # By representing the result as a timedelta we avoid the cases where
-        # the lower precision of timedelta compared to float drops the whole
-        # value (anything between 0 and 1 microsecond).  This is just one
-        # example of how working with timedeltas is nicer, in general.
-        lambda s: timedelta(seconds=s),
-    )
-
 
 def dummy_maintain_leases():
     pass
diff --git a/src/_zkapauthorizer/tests/test_plugin.py b/src/_zkapauthorizer/tests/test_plugin.py
index 74282d8c0ae34ae5be189d07997167bd371ca63f..6989cfa2eee03f7cb9ada51b826d82c464adca60 100644
--- a/src/_zkapauthorizer/tests/test_plugin.py
+++ b/src/_zkapauthorizer/tests/test_plugin.py
@@ -18,7 +18,6 @@ Tests for the Tahoe-LAFS plugin.
 
 from __future__ import absolute_import
 
-import tempfile
 from functools import partial
 from os import makedirs
 
@@ -51,6 +50,7 @@ from testtools.matchers import (
     IsInstance,
     MatchesAll,
     MatchesStructure,
+    Matcher,
 )
 from testtools.twistedsupport import succeeded
 from twisted.internet.task import Clock
@@ -65,7 +65,7 @@ from .._plugin import load_signing_key
 from .._storage_client import IncorrectStorageServerReference
 from ..controller import DummyRedeemer, IssuerConfigurationMismatch, PaymentController
 from ..foolscap import RIPrivacyPassAuthorizedStorageServer
-from ..lease_maintenance import SERVICE_NAME
+from ..lease_maintenance import SERVICE_NAME, LeaseMaintenanceConfig
 from ..model import NotEnoughTokens, VoucherStore
 from ..spending import GET_PASSES
 from .eliot import capture_logging
@@ -655,7 +655,7 @@ def has_lease_maintenance_configuration(lease_maint_config):
     Return a matcher for a Tahoe-LAFS client object that has a lease
     maintenance service with the given configuration.
     """
-    # type: (_LeaseMaintenanceConfig) -> Matcher
+    # type: (LeaseMaintenanceConfig) -> Matcher
     def get_lease_maintenance_config(lease_maint_service):
         return lease_maint_service.get_config()