new thread model: 2 threads: server + ui