diff --git a/app/app.pro b/app/app.pro
index 2623b02c6a41c9d284340bb1bcb0768fca1b0bdc..ada7bd9deec962a28bf3daadd0ede1f4a4e30afc 100644
--- a/app/app.pro
+++ b/app/app.pro
@@ -31,7 +31,8 @@ SOURCES += \
     updatable.cpp \
     task.cpp \
     controller.cpp \
-    generalstatus.cpp
+    generalstatus.cpp \
+    service.cpp
 
 HEADERS += \
         mainwindow.h \
@@ -40,7 +41,8 @@ HEADERS += \
     updatable.h \
     task.h \
     controller.h \
-    generalstatus.h
+    generalstatus.h \
+    service.h
 
 FORMS += \
         mainwindow.ui
diff --git a/app/element.cpp b/app/element.cpp
index 30107d12f0bef3ce56f6dcf745435d8fa861a1a2..a84ea4ad23ddb7a17f4aaec0654f344e8c095c2a 100644
--- a/app/element.cpp
+++ b/app/element.cpp
@@ -1,6 +1,6 @@
 #include "element.h"
 
-Element::Element(QString & name) : name(name)
+Element::Element()
 {
 
 }
diff --git a/app/element.h b/app/element.h
index e89a88f8c505ea5a0814bc191d8614f9426a9e97..be0978db0c618db983c031af0caaa546c6cbe371 100644
--- a/app/element.h
+++ b/app/element.h
@@ -9,7 +9,7 @@
 class Element : public Updatable
 {
 public:
-    Element(QString & name);
+    Element();
     QString get_name();
     QString get_status();
 protected:
diff --git a/app/elements.cpp b/app/elements.cpp
index 52a9e5dd95f7e02c3b25dacc9fc1a7d4d62f3f4c..23ce03f670d83efb6654ef3099203fe629d9822f 100644
--- a/app/elements.cpp
+++ b/app/elements.cpp
@@ -1,6 +1,6 @@
 #include "elements.h"
 
-Elements::Elements()
+Elements::Elements() : proc("/proc/"), task_list(".listT")
 {
 
 }
@@ -13,6 +13,20 @@ QStandardItemModel & Elements::getModel()
 
 void Elements::update()
 {
+    system("ls /proc | grep '[0-9]' > .listT");
+    if(!task_list.open(QIODevice::ReadOnly)) {
+        QMessageBox::information(0, "error", task_list.errorString());
+    }
+    QTextStream in(&task_list);
 
+    while(!in.atEnd()) {
+        int pid = in.readLine().toInt();
+
+
+        //model->appendRow(line);
+    }
+
+
+    task_list.close();
 }
 
diff --git a/app/elements.h b/app/elements.h
index 48eac02fad5d45f38ddc10c4a0e51e7216afd80c..234b0c2c2ed0e6fd9e1a2a14293ca3e81d3330c5 100644
--- a/app/elements.h
+++ b/app/elements.h
@@ -16,6 +16,8 @@ public:
 private:
     QStandardItemModel model;
     QStandardItem *parent0 = model.invisibleRootItem();
+    QFile proc;
+    QFile task_list;
 };
 
 #endif // ELEMENTS_H
diff --git a/app/generalstatus.cpp b/app/generalstatus.cpp
index 429056b954a44a792061185b741c70ffe6a75e9e..f1c29d46d27557b8bd6a583a7940783ff0f46222 100644
--- a/app/generalstatus.cpp
+++ b/app/generalstatus.cpp
@@ -14,6 +14,8 @@ GeneralStatus::GeneralStatus() : user_time(0), uptime("/proc/uptime"), meminfo("
 
     meminfo.close();
 
+    user = getenv("USER");
+
     GeneralStatus::update();
 }
 
@@ -95,3 +97,7 @@ int GeneralStatus::getNbTask()
 {
     return nbTask;
 }
+QString GeneralStatus::getUser()
+{
+    return user;
+}
diff --git a/app/generalstatus.h b/app/generalstatus.h
index cfa60a33ff8acbc0ba4c4842d3c6a8b5589b2fe1..ed6303e94d4b5227bef55f730d54d72e8c38f20e 100644
--- a/app/generalstatus.h
+++ b/app/generalstatus.h
@@ -12,6 +12,7 @@ public:
     int getMemTotal();
     double getCPU();
     int getNbTask();
+    QString getUser();
     void update();
 private:
     int time;
@@ -20,6 +21,7 @@ private:
     double CPU;
     int nbTask;
     int user_time;
+    QString user;
     QFile uptime;
     QFile meminfo;
     QFile stat;
diff --git a/app/service.cpp b/app/service.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..d90acf176e942b6195b6da49605110d491586f3e
--- /dev/null
+++ b/app/service.cpp
@@ -0,0 +1,23 @@
+#include "service.h"
+
+Service::Service()
+{
+
+}
+
+Service::update()
+{
+
+}
+
+
+
+int Service::get_nbTask()
+{
+    return nbTask;
+}
+
+QString Service::get_details()
+{
+    return details;
+}
diff --git a/app/service.h b/app/service.h
new file mode 100644
index 0000000000000000000000000000000000000000..e7d989fc70de60b041531bc9144b2e67dac10eaf
--- /dev/null
+++ b/app/service.h
@@ -0,0 +1,17 @@
+#ifndef SERVICE_H
+#define SERVICE_H
+
+#include "element.h"
+
+class Service : public Element
+{
+public:
+    Service();
+    int get_nbTask();
+    QString get_details();
+private:
+    int nbTask;
+    QString details;
+};
+
+#endif // SERVICE_H
diff --git a/app/task.cpp b/app/task.cpp
index 8480da383722e8301645ce381d2d5ba933dac7ef..a10be23030b02e0a958b751a1d41e4970ed4aded 100644
--- a/app/task.cpp
+++ b/app/task.cpp
@@ -1,8 +1,32 @@
 #include "task.h"
 
 
-Task::Task(QString & name, int PID) : Element(name), PID(PID), utime(0), stat("/proc/"+QString::number(PID)+"/stat")
+Task::Task(int PID) : PID(PID), utime(0), stat("/proc/"+QString::number(PID)+"/stat")
 {
+    QFile cmd("/proc"+QString::number(PID)+"/comm");
+    if(!cmd.open(QIODevice::ReadOnly)) {
+        QMessageBox::information(0, "error", cmd.errorString());
+    }
+    QTextStream in(&cmd);
+
+    name = in.readLine();
+
+    cmd.close();
+
+    QString command("ls -la /proc/"+QString::number(PID)+" | grep ' \.' > .userT");
+    system(command.toStdString().c_str());
+
+    QFile task_user(".userT");
+    if(!task_user.open(QIODevice::ReadOnly)) {
+        QMessageBox::information(0, "error", task_user.errorString());
+    }
+    QTextStream in2(&task_user);
+    QStringList fields = in2.readLine().split(" ");
+
+    user = fields.at(fields.length()-8);
+
+    task_user.close();
+
     Task::update();
 }
 
@@ -22,6 +46,7 @@ void Task::update()
     int new_utime = fields.at(13).toInt();
     CPU = static_cast<double>(new_utime-utime);
     utime = new_utime;
+    PPID = fields.at(3).toInt();
 
     stat.close();
 }
@@ -47,3 +72,11 @@ double Task::getMem()
 {
     return mem;
 }
+int Task::getPPID()
+{
+    return PPID;
+}
+QString Task::getUser()
+{
+    return user;
+}
diff --git a/app/task.h b/app/task.h
index 250435c1f4a9c305993bb594a84f823869e438b0..6687f2e0dd48b2f5e989964d01e76eb8d29e12bc 100644
--- a/app/task.h
+++ b/app/task.h
@@ -10,19 +10,23 @@
 class Task : Element
 {
 public:
-    Task(QString & name, int PID);
+    Task(int PID);
     void update();
     void sendSignal(int sig);
     int getPID();
     double getCPU();
     int getUtime();
     double getMem();
+    int getPPID();
+    QString getUser();
 private:
     int PID;
     double CPU;
     int utime;
     double mem;
+    int PPID;
     QFile stat;
+    QString user;
 };
 
 #endif // TASK_H