Re-wrote BlockExtended and moved it to the core.