made type definitions more explicit