Implement in terms of a vector.
Limit the block type to be unsigned.
Add empty constructors.