Ok, this has the functionality I want for an initial release.