Vulnerability refactoring

Refactoring.

1) Put most scientific code into a separate module (to avoid having module with just "one" function)

2) Put Vulnerability Function related code into one class (to avoid repeated code in the client of vulnerability function)