inventing block types on the client side, refs #28