added some type definitions