diff --git a/src/main/kotlin/mobildata/model/User.kt b/src/main/kotlin/mobildata/model/User.kt
index b9880483966a90639e96b51b640a28973b5b8f70..f1368f801209902f386ddd16331be89204aee9e9 100644
--- a/src/main/kotlin/mobildata/model/User.kt
+++ b/src/main/kotlin/mobildata/model/User.kt
@@ -8,6 +8,8 @@ import javax.persistence.*
 // user should be quoted, because this keyword might be resolved in
 // various DBMS's (e.g. postgresql)
 
+//@ManyToMany: use for list fields
+
 @Entity
 //@JsonRootName("user")
 @Table(name = "\"user\"")
@@ -15,11 +17,10 @@ data class User(var email: String = "",
                 @JsonIgnore
                 var password: String = "",
                 var token: String = "",
-                @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/mm/yyyy") var birthDate: Date = Date(),
+                @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/mm/yyyy")
+                var birthDate: Date = Date(),
                 var deviceType: String = "", // TODO type
-                var androidVersion: String = "",
-                //@ManyToMany
-                //@JsonIgnore
+                var androidVersion: Int? = null,
                 @Id @GeneratedValue(strategy = GenerationType.AUTO)
                 var id: Long = 0) {
     override fun toString(): String = "User($email)"
diff --git a/src/main/kotlin/mobildata/model/inout/Register.kt b/src/main/kotlin/mobildata/model/inout/Register.kt
index 8c176adbd89e37ccefa79654d8ac952485c5040d..caa54d4b3eb117e31d104b440276a603f4d32b66 100644
--- a/src/main/kotlin/mobildata/model/inout/Register.kt
+++ b/src/main/kotlin/mobildata/model/inout/Register.kt
@@ -1,8 +1,6 @@
 package mobildata.model.inout
 
-import com.fasterxml.jackson.annotation.JsonRootName
 import io.swagger.annotations.ApiModelProperty
-import io.swagger.annotations.Example
 import javax.validation.constraints.NotNull
 import javax.validation.constraints.Pattern
 import javax.validation.constraints.Size
@@ -27,8 +25,20 @@ class Register {
     @ApiModelProperty(example = "16/01/1996", required = false)
     var birthDate: String? = ""
 
-    constructor(email: String?, password: String?) {
+    // TODO integer validation
+    @ApiModelProperty(example = "28", required = false)
+    var androidVersion: Int? = null
+
+    @Size(min = 1, max = 500, message = "invalid field size")
+    @ApiModelProperty(example = "Samsung Galaxy blabla bla", required = false)
+    var deviceType: String? = ""
+
+    constructor(email: String?, password: String?, birthDate: String? = null, androidVersion: Int? = null,
+                deviceType: String? = null) {
         this.email = email
         this.password = password
+        this.birthDate = birthDate
+        this.androidVersion = androidVersion
+        this.deviceType = deviceType
     }
 }
\ No newline at end of file
diff --git a/src/main/kotlin/mobildata/model/inout/UpdateUser.kt b/src/main/kotlin/mobildata/model/inout/UpdateUser.kt
index ea06930bf0308071c2c02b8d6263b2aa31e915a4..af7883a930092d26e23dc5659cbb83ab8328d2ea 100644
--- a/src/main/kotlin/mobildata/model/inout/UpdateUser.kt
+++ b/src/main/kotlin/mobildata/model/inout/UpdateUser.kt
@@ -17,5 +17,24 @@ class UpdateUser {
     @ApiModelProperty(example = "16/01/1996", required = false)
     var birthDate: String? = ""
 
+    @Size(min = 1, message = "can't be empty")
+    @Pattern(regexp = "([1-9]\\d)", message = "must be a valid andoid API level")
+    @ApiModelProperty(example = "28", required = false)
+    var androidVersion: Int? = null
+
+    @Size(min = 1, max = 500, message = "invalid field size")
+    @ApiModelProperty(example = "Samsung Galaxy blabla bla", required = false)
+    var deviceType: String? = ""
+
+
     var password: String? = null
+
+    constructor(email: String?, password: String?, birthDate: String? = null, androidVersion: Int? = null,
+                deviceType: String? = null) {
+        this.email = email
+        this.password = password
+        this.birthDate = birthDate
+        this.androidVersion = androidVersion
+        this.deviceType = deviceType
+    }
 }
\ No newline at end of file
diff --git a/src/main/kotlin/mobildata/web/UserHandler.kt b/src/main/kotlin/mobildata/web/UserHandler.kt
index d907c2b4bc5aba81b94289a9ab9bdd5607825be6..635280b25be41f5a0779733c26b45fb2ae57503f 100644
--- a/src/main/kotlin/mobildata/web/UserHandler.kt
+++ b/src/main/kotlin/mobildata/web/UserHandler.kt
@@ -52,7 +52,7 @@ class UserHandler(val repository: UserRepository,
         val date = service.createDate(register.birthDate) ?: Date();
 
         val user = User(email = register.email!!, password = BCrypt.hashpw(register.password, BCrypt.gensalt()),
-                birthDate = date)
+                birthDate = date, deviceType = register.deviceType ?: "", androidVersion = register.androidVersion)
         user.token = service.newToken(user)
 
         val saved = repository.save(user)
@@ -62,7 +62,7 @@ class UserHandler(val repository: UserRepository,
 
     @ApiKeySecured
     @GetMapping("/api/user")
-    fun currentUser() = view(service.currentUser())
+    fun currentUser() = service.currentUser()
 
     @ApiKeySecured
     @PutMapping("/api/user")
@@ -87,7 +87,8 @@ class UserHandler(val repository: UserRepository,
 
         // update the user
         val u = currentUser.copy(email = user.email ?: currentUser.email,
-                password = BCrypt.hashpw(user.password, BCrypt.gensalt()), birthDate = date)
+                password = BCrypt.hashpw(user.password, BCrypt.gensalt()), birthDate = date,
+                deviceType = user.deviceType ?: "", androidVersion = user.androidVersion)
         // update token only if email changed
         if (currentUser.email != u.email) {
             u.token = service.newToken(u)
@@ -104,5 +105,4 @@ class UserHandler(val repository: UserRepository,
         }
     }
 
-    fun view(user: User) = mapOf("user" to user)
 }
\ No newline at end of file
diff --git a/src/main/resources/schema.sql b/src/main/resources/schema.sql
index 9fde62b591a5ea3e4b5fc878f826408033c9b900..15c0570e6c2fbc02a0a486b3d00db0c11248b9a1 100644
--- a/src/main/resources/schema.sql
+++ b/src/main/resources/schema.sql
@@ -13,12 +13,12 @@ create sequence hibernate_sequence start 1 increment 1;
 
 create table "user" (
   id int8 not null,
-  bio varchar(255),
   email varchar(255),
-  image varchar(255),
   password varchar(255),
   token varchar(255),
-  username varchar(255),
+  android_version INTEGER,
+  birth_date TIMESTAMP,
+  device_type VARCHAR(255),
   primary key (id)
 );