The code was splitted into several modules
Began validation refactoring
Merge remote-tracking branch 'origin/version2' into version2