popup: split own functionality into target modifiers (close #968)

Do we actually need this functions in common api? Maybe move it to `_target`?