type declarations