Improve KoralQuery Import
diff --git a/lib/Krawfish/Koral/Query.pm b/lib/Krawfish/Koral/Query.pm
index 07193a5..b9b0721 100644
--- a/lib/Krawfish/Koral/Query.pm
+++ b/lib/Krawfish/Koral/Query.pm
@@ -1,12 +1,13 @@
 package Krawfish::Koral::Query;
 use parent 'Krawfish::Info';
 use Krawfish::Koral::Query::Builder;
-use strict;
+use Krawfish::Koral::Query::Importer;
 use warnings;
+use strict;
 
 sub new {
   my $class = shift;
-  bless {
+  my $self = bless {
     any => 0,
     optional => 0,
     null => 0,
@@ -15,6 +16,12 @@
     extended_left => 0,
     extended_right => 0
   }, $class;
+
+  if ($_[0]) {
+    return $self->from_koral(shift);
+  };
+
+  $self;
 };
 
 #########################################
@@ -80,8 +87,34 @@
 #############################
 
 # Deserialization of KoralQuery
+# TODO: export this method from Importer
 sub from_koral {
-  ...
+  my ($class, $kq) = @_;
+  my $importer = Krawfish::Koral::Query::Importer->new;
+
+  my $type = $kq->{'@type'};
+  if ($type eq 'koral:group') {
+    my $op = $kq->{operation};
+    if ($op eq 'operation:sequence') {
+      return $importer->seq($kq);
+    }
+
+    elsif ($op eq 'operation:class') {
+      return $importer->class($kq);
+    }
+    else {
+      warn 'Operation ' . $op . ' not supported';
+    };
+  }
+
+  elsif ($type eq 'koral:token') {
+    return $importer->token($kq);
+  }
+  else {
+    warn $type . ' unknown';
+  };
+
+  return;
 };
 
 # Overwritten
@@ -98,6 +131,11 @@
   return Krawfish::Koral::Query::Builder->new;
 };
 
+# Create KoralQuery builder
+sub importer {
+  return Krawfish::Koral::Query::Importer->new;
+};
+
 1;