port over the Block() class