well, I don't know how it exact work, so I just refactor, feel free to remove it completelly