use blocks for everything