split visitor into two visitors
refactored formVisitor (no logics in the class visitor)