refactoring for vk