might make more sense to be a different class altogether, though this doesn't bother me. `block` feels like a bad name though. it's more like `transform` or something right?