typedef ALL the blocks