added function type declarations