Added Enumerated types to aid reading the code