Updates doc.
Minor refactoring.
Refactoring on meta programming lines.