generalize BlockGenerator to work with string keys