tests     TEXT,
        timeout   REAL      NOT NULL,
        value     INT,
+       genformat TEXT,
+       gensource TEXT,
        verformat TEXT,
        versource TEXT
 );
 
 
 =head2 results
 
-  data_type: 'json'
+  data_type: 'text'
   is_nullable: 1
 
 =head2 source
   "result_text",
   { data_type => "text", is_nullable => 1 },
   "results",
-  { data_type => "json", is_nullable => 1 },
+  { data_type => "text", is_nullable => 1 },
   "source",
   { data_type => "text", is_nullable => 0 },
   "owner",
 );
 
 
-# Created by DBIx::Class::Schema::Loader v0.07039 @ 2014-03-24 09:25:07
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:mDHQWFk/K7q/nHu+Z3a0+A
+# Created by DBIx::Class::Schema::Loader v0.07039 @ 2014-03-26 15:24:46
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:dnYOXMU6Or/Wh0m5A1N5UA
 
 
 # You can replace this text with custom code or comments, and it will be preserved on regeneration
 
 =head2 author
 
   data_type: 'text'
-  is_nullable: 0
+  is_nullable: 1
 
 =head2 generator
 
   data_type: 'integer'
   is_nullable: 1
 
+=head2 genformat
+
+  data_type: 'text'
+  is_nullable: 1
+
+=head2 gensource
+
+  data_type: 'text'
+  is_nullable: 1
+
 =head2 verformat
 
   data_type: 'text'
   "id",
   { data_type => "text", is_nullable => 0 },
   "author",
-  { data_type => "text", is_nullable => 0 },
+  { data_type => "text", is_nullable => 1 },
   "generator",
   {
     data_type => "enum",
   { data_type => "real", is_nullable => 0 },
   "value",
   { data_type => "integer", is_nullable => 1 },
+  "genformat",
+  { data_type => "text", is_nullable => 1 },
+  "gensource",
+  { data_type => "text", is_nullable => 1 },
   "verformat",
   { data_type => "text", is_nullable => 1 },
   "versource",
 __PACKAGE__->many_to_many("contests", "contest_problems", "contest");
 
 
-# Created by DBIx::Class::Schema::Loader v0.07039 @ 2014-03-24 09:25:07
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:dZicbasR8lUFGhIabrWxXw
+# Created by DBIx::Class::Schema::Loader v0.07039 @ 2014-03-26 15:24:46
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:QeM8iOMQE3lqG2tXKbpRxw
 
 
 # You can replace this text with custom code or comments, and it will be preserved on regeneration
 
   data_type: 'text'
   is_nullable: 1
 
+=head2 phone
+
+  data_type: 'text'
+  is_nullable: 1
+
 =head2 town
 
   data_type: 'text'
   { data_type => "text", is_nullable => 1 },
   "email",
   { data_type => "text", is_nullable => 1 },
+  "phone",
+  { data_type => "text", is_nullable => 1 },
   "town",
   { data_type => "text", is_nullable => 1 },
   "university",
 );
 
 
-# Created by DBIx::Class::Schema::Loader v0.07039 @ 2014-03-06 12:41:16
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:CHRtUlZf3hs+lg6Nqi2LPA
+# Created by DBIx::Class::Schema::Loader v0.07039 @ 2014-03-26 15:24:46
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:HjxrnH2QdWGaAnArZpyYMA
 
 
 # You can replace this text with custom code or comments, and it will be preserved on regeneration
 
 defhash problem => qw/name level difficulty statement owner author private generator runner judge testcnt timeout olimit/;
 defhash contest => qw/start end name owner/;
 defhash job => qw/date errors extension filesize private problem result result_text user/;
-defhash user => qw/name email lastjob town university level/;
+defhash user => qw/name email lastjob phone town university level/;
 
 sub clean_job (_){
        HDEL cp . "job.$_[0]", qw/result result_text results daemon/