Global datatypes and defines
