refactoring: introduced parametrized Version as preparation for breakdown in smaller tasks