diff --git a/contrib/mobile/iOS/Onelab/Model.h b/contrib/mobile/iOS/Onelab/Model.h
new file mode 100644
index 0000000000000000000000000000000000000000..67370529bb8288402967984031afdf0c132cfb2b
--- /dev/null
+++ b/contrib/mobile/iOS/Onelab/Model.h
@@ -0,0 +1,29 @@
+//
+//  Model.h
+//  Onelab
+//
+//  Created by Maxime Graulich on 03/09/13.
+//  Copyright (c) 2013 Maxime Graulich. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@interface Model : NSObject
+{
+    @private
+    NSString *_name, *_summary, *_file;
+    NSURL *_url;
+    UIImage *_preview;
+}
+-(id) initWithName:(NSString *)name;
+-(id) initWithName:(NSString *)name withSummary:(NSString *)summary withFile:(NSString *)file;
+-(NSString *) getName;
+-(NSString *) getSummary;
+-(NSString *) getFile;
+-(void) setSummary:(NSString *)summary;
+-(void) setFile:(NSString *)file;
+-(NSURL *) getUrl;
+-(UIImage *) getPreview;
+-(void) setPreview:(NSString *)path;
+-(void) setUrl:(NSString *)url;
+@end
diff --git a/contrib/mobile/iOS/Onelab/Model.mm b/contrib/mobile/iOS/Onelab/Model.mm
new file mode 100644
index 0000000000000000000000000000000000000000..74f1c8542772ddab2e27d54d5fc466a3b3c2cfa3
--- /dev/null
+++ b/contrib/mobile/iOS/Onelab/Model.mm
@@ -0,0 +1,66 @@
+//
+//  Model.m
+//  Onelab
+//
+//  Created by Maxime Graulich on 03/09/13.
+//  Copyright (c) 2013 Maxime Graulich. All rights reserved.
+//
+
+#import "Model.h"
+
+@implementation Model
+
+-(id) initWithName:(NSString *)name {
+    self = [super init];
+    if(self) {
+        _name = name;
+        _summary = nil;
+        _file = nil;
+        _url = nil;
+        _preview = nil;
+    }
+    return self;
+}
+
+-(id) initWithName:(NSString *)name withSummary:(NSString *)summary withFile:(NSString *)file {
+    self = [super init];
+    if(self) {
+        _name = name;
+        _summary = summary;
+        _file = file;
+        _url = nil;
+        _preview = nil;
+    }
+    return self;
+}
+
+-(NSString *) getName {
+    return _name;
+}
+-(NSString *) getSummary {
+    return _summary;
+}
+-(NSString *) getFile {
+    return _file;
+}
+-(NSURL *) getUrl {
+    return _url;
+}
+-(UIImage *) getPreview {
+    return _preview;
+}
+-(void) setSummary:(NSString *)summary {
+    _summary = summary;
+}
+-(void) setFile:(NSString *)file {
+    _file = file;
+}
+-(void) setPreview:(NSString *)path {
+    _preview = [UIImage imageWithContentsOfFile:path];
+}
+-(void) setUrl:(NSString *)url {
+    _url = [NSURL URLWithString:url];
+}
+
+
+@end
diff --git a/contrib/mobile/iOS/Onelab/Parameter.mm b/contrib/mobile/iOS/Onelab/Parameter.mm
index c82b60f033ad1d20cd1e93ab25caaea7fb4d1e1b..7bd551e28683b0bf91e959a04b4c454843be75f5 100644
--- a/contrib/mobile/iOS/Onelab/Parameter.mm
+++ b/contrib/mobile/iOS/Onelab/Parameter.mm
@@ -56,7 +56,7 @@
     if(self)
     {
         label.alpha = (string.getReadOnly())? 0.439216f : 1.0f;
-        [label setText:(string.getLabel() != "")?[NSString stringWithCString:string.getLabel().c_str() encoding:[NSString defaultCStringEncoding]] : [[[NSString stringWithCString:string.getName().c_str() encoding:[NSString defaultCStringEncoding]] componentsSeparatedByString:@"/"] lastObject]];
+        [label setText:[NSString stringWithCString:string.getShortName().c_str() encoding:[NSString defaultCStringEncoding]]];
         name = [NSString stringWithCString:string.getName().c_str() encoding:[NSString defaultCStringEncoding]];
         picker = [[UIPickerView alloc] init];
         picker.showsSelectionIndicator = YES;
@@ -138,7 +138,7 @@
     if(self)
     {
         label.alpha = (number.getReadOnly())? 0.439216f : 1.0f;
-        [label setText:(number.getLabel() != "")?[NSString stringWithCString:number.getLabel().c_str() encoding:[NSString defaultCStringEncoding]] : [[[NSString stringWithCString:number.getName().c_str() encoding:[NSString defaultCStringEncoding]] componentsSeparatedByString:@"/"] lastObject]];
+        [label setText:[NSString stringWithCString:number.getShortName().c_str() encoding:[NSString defaultCStringEncoding]]];
         name = [NSString stringWithCString:number.getName().c_str() encoding:[NSString defaultCStringEncoding]];
         picker = [[UIPickerView alloc] init];
         picker.showsSelectionIndicator = YES;
@@ -210,7 +210,7 @@
     if(self)
     {
         label.alpha = (number.getReadOnly())? 0.439216f : 1.0f;
-        [label setText:(number.getLabel() != "")?[NSString stringWithCString:number.getLabel().c_str() encoding:[NSString defaultCStringEncoding]] : [[[NSString stringWithCString:number.getName().c_str() encoding:[NSString defaultCStringEncoding]] componentsSeparatedByString:@"/"] lastObject]];
+        [label setText:[NSString stringWithCString:number.getShortName().c_str() encoding:[NSString defaultCStringEncoding]]];
         name = [NSString stringWithCString:number.getName().c_str() encoding:[NSString defaultCStringEncoding]];
         checkbox = [[UISwitch alloc] init];
         [checkbox setSelected:(number.getValue() == 1)];
@@ -270,7 +270,7 @@
         //TODO add step ?
         [slider addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventTouchUpOutside];
         [slider addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventTouchUpInside];
-        [label setText:[NSString stringWithFormat:@"%@ %f" ,(number.getLabel() != "")?[NSString stringWithCString:number.getLabel().c_str() encoding:[NSString defaultCStringEncoding]] : [[[NSString stringWithCString:number.getName().c_str() encoding:[NSString defaultCStringEncoding]] componentsSeparatedByString:@"/"] lastObject], number.getValue()]];
+        [label setText:[NSString stringWithFormat:@"%@ %f" ,[NSString stringWithCString:number.getShortName().c_str() encoding:[NSString defaultCStringEncoding]], number.getValue()]];
     }
     return self;
 }
@@ -290,7 +290,7 @@
     if(number.size() < 1) return;
     number[0].setValue(sender.value);
     onelab::server::instance()->set(number[0]);
-    [label setText:[NSString stringWithFormat:@"%s %f" ,(number[0].getLabel() != "")?number[0].getLabel().c_str():number[0].getName().c_str(), number[0].getValue()]];
+    [label setText:[NSString stringWithFormat:@"%s %f" ,number[0].getShortName().c_str(), number[0].getValue()]];
     if(onelab_cb("check") == 1)
         [[NSNotificationCenter defaultCenter] postNotificationName:@"requestRender" object:nil];
 }
@@ -322,7 +322,7 @@
     if(self)
     {
         label.alpha = (number.getReadOnly())? 0.439216f : 1.0f;
-        [label setText:(number.getLabel() != "")?[NSString stringWithCString:number.getLabel().c_str() encoding:[NSString defaultCStringEncoding]] : [[[NSString stringWithCString:number.getName().c_str() encoding:[NSString defaultCStringEncoding]] componentsSeparatedByString:@"/"] lastObject]];
+        [label setText:[NSString stringWithCString:number.getShortName().c_str() encoding:[NSString defaultCStringEncoding]]];
         name = [NSString stringWithCString:number.getName().c_str() encoding:[NSString defaultCStringEncoding]];
         textbox = [[UITextField alloc] init];
         [textbox setBorderStyle:UITextBorderStyleRoundedRect];