extract gungnir logic in dedicated class