Shouldn't this be VariableWidthRandomAccessBlock? The abstract parent class captures other implementations, such as VariableWidthBlockBuilder, which doesn't seem appropriate. Speaking of which, the hierarchy for these classes seems a bit complicated... maybe we can simplify (let me think about it)