This type of logic should exist within the Version class and not here