refactoring for multiply backends (pyqt, urwid, *cli, *web)
* just idea