playing around with the api a bit - using if as a bucket option, not just a counter option; trying out define method if :if a proc