Use common nameing
Make body section required.
Structure changes.
Add AttributeWithParent object to store information about attribute stack.
Reorganize module
Package refactoring
Relocate tests