some type definitions