added type definitions and global includes in a separate file