restructured a bit, new block types