This comment also applies to sampling strategies (at least the ones in base.py, maybe others.
This is a bit confusing. Why not just take requirements when you call sample() instead of taking them both in the initializer and here?
Originally posted by @nrfulton in #311 (comment)