There is some DRY, which just needs some refactoring. My time was limited while developing feature, thats why moved to solve it later.
added Todo Martin Masterarbeit label