+ Add document
+ Refactor struct code