Interface is now called BaseObject as that is more accurate.

It is now an abstract base class, the constructor included previously in every derived class has been moved up as it was only setting a few fields.
Every derived class now instantiates this BaseObject and then call Initialize() which sets all our derived class properties taking informations from our structure.
Capitalized properties and methods.
Related to previous commit, these derived classes call BaseObject constructor and then Initialize, they now include properties for every structure field (unfinished).

Various syntaxic changes to adhere to a single coding style.
Mostly cosmetic changes with Resharper.