typedef blocks for easy declaration and reuse