processing by blocks