@Override
    public void run() {
        String res = "";
        String recieve = null;
        while (running){
            recieve = this.recieve();
            if (recieve != null) {
                res = this.interpreter.execute(recieve);
                if (!res.startsWith("ERROR") && !res.equals("BYE")) {
                    this.send(res);
                }else{
                    this.close(res);
                }
            }
        }
        this.server.inkrementThreadCount();
        try {
            this.client.close();
        } catch (IOException ex) {
            System.out.println("Worker: " + ex);
            this.send("Worker: " + ex);
            Logger.getLogger(WorkerThread.class.getName()).log(Level.SEVERE, null, ex);
        }
    }