a sketch of how I might do this