extracted more type definitions