made block abstract