renamed blockabstract to reflect functionality more accurately
use blocks where it is applicable