refactored structure for versions, to ease addition of new languages