Concerning code style and guidelines: Could you remove the newlines after the class header, the enums etc.