dictionary and some refactoring
smth else