added type definitions