passing blocks around