add iterators in PropertyGroup + example
add Visitor Pattern for Properties
add traverse PropertyGroup method to AbstractPropertyVisitor