add ui model
refactor: split to two processes (tcp connector, web ui)