diff --git a/src/main/java/com/clevercloud/biscuit/error/package-info.java b/src/main/java/com/clevercloud/biscuit/error/package-info.java
deleted file mode 100644
index 9c0bc3fa..00000000
--- a/src/main/java/com/clevercloud/biscuit/error/package-info.java
+++ /dev/null
@@ -1,4 +0,0 @@
-/**
- * Error description classes
- */
-package com.clevercloud.biscuit.error;
\ No newline at end of file
diff --git a/src/main/java/com/clevercloud/biscuit/token/format/package-info.java b/src/main/java/com/clevercloud/biscuit/token/format/package-info.java
deleted file mode 100644
index 2454c329..00000000
--- a/src/main/java/com/clevercloud/biscuit/token/format/package-info.java
+++ /dev/null
@@ -1,4 +0,0 @@
-/**
- * Serializing code
- */
-package com.clevercloud.biscuit.token.format;
\ No newline at end of file
diff --git a/src/main/java/com/clevercloud/biscuit/crypto/KeyDelegate.java b/src/main/java/org/biscuitsec/biscuit/crypto/KeyDelegate.java
similarity index 90%
rename from src/main/java/com/clevercloud/biscuit/crypto/KeyDelegate.java
rename to src/main/java/org/biscuitsec/biscuit/crypto/KeyDelegate.java
index b9def84b..234eebdf 100644
--- a/src/main/java/com/clevercloud/biscuit/crypto/KeyDelegate.java
+++ b/src/main/java/org/biscuitsec/biscuit/crypto/KeyDelegate.java
@@ -1,4 +1,4 @@
-package com.clevercloud.biscuit.crypto;
+package org.biscuitsec.biscuit.crypto;
 
 import io.vavr.control.Option;
 
diff --git a/src/main/java/com/clevercloud/biscuit/crypto/KeyPair.java b/src/main/java/org/biscuitsec/biscuit/crypto/KeyPair.java
similarity index 96%
rename from src/main/java/com/clevercloud/biscuit/crypto/KeyPair.java
rename to src/main/java/org/biscuitsec/biscuit/crypto/KeyPair.java
index 995f0ebd..a12c3de0 100644
--- a/src/main/java/com/clevercloud/biscuit/crypto/KeyPair.java
+++ b/src/main/java/org/biscuitsec/biscuit/crypto/KeyPair.java
@@ -1,8 +1,8 @@
-package com.clevercloud.biscuit.crypto;
+package org.biscuitsec.biscuit.crypto;
 
 
 import biscuit.format.schema.Schema;
-import com.clevercloud.biscuit.token.builder.Utils;
+import org.biscuitsec.biscuit.token.builder.Utils;
 import net.i2p.crypto.eddsa.EdDSAPrivateKey;
 import net.i2p.crypto.eddsa.EdDSAPublicKey;
 import net.i2p.crypto.eddsa.spec.*;
diff --git a/src/main/java/com/clevercloud/biscuit/crypto/PublicKey.java b/src/main/java/org/biscuitsec/biscuit/crypto/PublicKey.java
similarity index 87%
rename from src/main/java/com/clevercloud/biscuit/crypto/PublicKey.java
rename to src/main/java/org/biscuitsec/biscuit/crypto/PublicKey.java
index 640b04b5..71dc0a81 100644
--- a/src/main/java/com/clevercloud/biscuit/crypto/PublicKey.java
+++ b/src/main/java/org/biscuitsec/biscuit/crypto/PublicKey.java
@@ -1,18 +1,14 @@
-package com.clevercloud.biscuit.crypto;
+package org.biscuitsec.biscuit.crypto;
 
 import biscuit.format.schema.Schema;
 import biscuit.format.schema.Schema.PublicKey.Algorithm;
-import com.clevercloud.biscuit.datalog.Scope;
-import com.clevercloud.biscuit.error.Error;
-import com.clevercloud.biscuit.token.builder.Utils;
+import org.biscuitsec.biscuit.error.Error;
+import org.biscuitsec.biscuit.token.builder.Utils;
 import com.google.protobuf.ByteString;
-import io.vavr.control.Either;
 import net.i2p.crypto.eddsa.EdDSAPublicKey;
 import net.i2p.crypto.eddsa.spec.EdDSAPublicKeySpec;
 
-import static com.clevercloud.biscuit.crypto.KeyPair.ed25519;
-import static io.vavr.API.Left;
-import static io.vavr.API.Right;
+import static org.biscuitsec.biscuit.crypto.KeyPair.ed25519;
 
 public class PublicKey {
 
diff --git a/src/main/java/com/clevercloud/biscuit/crypto/Token.java b/src/main/java/org/biscuitsec/biscuit/crypto/Token.java
similarity index 94%
rename from src/main/java/com/clevercloud/biscuit/crypto/Token.java
rename to src/main/java/org/biscuitsec/biscuit/crypto/Token.java
index 1104a680..36660641 100644
--- a/src/main/java/com/clevercloud/biscuit/crypto/Token.java
+++ b/src/main/java/org/biscuitsec/biscuit/crypto/Token.java
@@ -1,6 +1,6 @@
-package com.clevercloud.biscuit.crypto;
+package org.biscuitsec.biscuit.crypto;
 
-import com.clevercloud.biscuit.error.Error;
+import org.biscuitsec.biscuit.error.Error;
 import io.vavr.control.Either;
 import net.i2p.crypto.eddsa.EdDSAEngine;
 
@@ -9,7 +9,6 @@
 import java.security.*;
 import java.util.ArrayList;
 
-import static com.clevercloud.biscuit.crypto.KeyPair.ed25519;
 import static io.vavr.API.Left;
 import static io.vavr.API.Right;
 
@@ -20,7 +19,7 @@ class Token {
     public final KeyPair next;
 
     public Token(KeyPair rootKeyPair, byte[] message, KeyPair next) throws NoSuchAlgorithmException, InvalidKeyException, SignatureException {
-        Signature sgr = new EdDSAEngine(MessageDigest.getInstance(ed25519.getHashAlgorithm()));
+        Signature sgr = new EdDSAEngine(MessageDigest.getInstance(KeyPair.ed25519.getHashAlgorithm()));
         ByteBuffer algo_buf = ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN);
         algo_buf.putInt(Integer.valueOf(next.public_key().algorithm.getNumber()));
         algo_buf.flip();
@@ -49,7 +48,7 @@ public Token(final ArrayList<byte[]> blocks, final ArrayList<PublicKey> keys, fi
     }
 
     public Token append(KeyPair keyPair, byte[] message) throws NoSuchAlgorithmException, SignatureException, InvalidKeyException {
-        Signature sgr = new EdDSAEngine(MessageDigest.getInstance(ed25519.getHashAlgorithm()));
+        Signature sgr = new EdDSAEngine(MessageDigest.getInstance(KeyPair.ed25519.getHashAlgorithm()));
         sgr.initSign(this.next.private_key);
         ByteBuffer algo_buf = ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN);
         algo_buf.putInt(Integer.valueOf(next.public_key().algorithm.getNumber()));
@@ -77,7 +76,7 @@ public Either<Error, Void> verify(PublicKey root) throws NoSuchAlgorithmExceptio
             byte[] signature = this.signatures.get(i);
 
             System.out.println("verifying block "+i+" with current key "+current_key.toHex()+" block "+block+" next key "+next_key.toHex()+" signature "+signature);
-            Signature sgr = new EdDSAEngine(MessageDigest.getInstance(ed25519.getHashAlgorithm()));
+            Signature sgr = new EdDSAEngine(MessageDigest.getInstance(KeyPair.ed25519.getHashAlgorithm()));
             ByteBuffer algo_buf = ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN);
             algo_buf.putInt(Integer.valueOf(next.public_key().algorithm.getNumber()));
             algo_buf.flip();
diff --git a/src/main/java/com/clevercloud/biscuit/crypto/TokenSignature.java b/src/main/java/org/biscuitsec/biscuit/crypto/TokenSignature.java
similarity index 93%
rename from src/main/java/com/clevercloud/biscuit/crypto/TokenSignature.java
rename to src/main/java/org/biscuitsec/biscuit/crypto/TokenSignature.java
index b16b4d73..2d89ae22 100644
--- a/src/main/java/com/clevercloud/biscuit/crypto/TokenSignature.java
+++ b/src/main/java/org/biscuitsec/biscuit/crypto/TokenSignature.java
@@ -1,17 +1,6 @@
-package com.clevercloud.biscuit.crypto;
+package org.biscuitsec.biscuit.crypto;
 
-import biscuit.format.schema.Schema;
-import com.clevercloud.biscuit.error.Error;
-import com.google.protobuf.ByteString;
-import io.vavr.control.Either;
-
-import java.security.MessageDigest;
-import java.security.SecureRandom;
-import java.util.ArrayList;
-import java.util.List;
-
-import static io.vavr.API.Left;
-import static io.vavr.API.Right;
+import org.biscuitsec.biscuit.token.builder.Utils;
 
 /**
  * Signature aggregation
@@ -191,6 +180,6 @@ static public String hex(byte[] byteArray) {
     }
 
     public static byte[] fromHex(String s) {
-        return com.clevercloud.biscuit.token.builder.Utils.hexStringToByteArray(s);
+        return Utils.hexStringToByteArray(s);
     }
 }
diff --git a/src/main/java/com/clevercloud/biscuit/crypto/package-info.java b/src/main/java/org/biscuitsec/biscuit/crypto/package-info.java
similarity index 58%
rename from src/main/java/com/clevercloud/biscuit/crypto/package-info.java
rename to src/main/java/org/biscuitsec/biscuit/crypto/package-info.java
index 147d51e1..25a7d13c 100644
--- a/src/main/java/com/clevercloud/biscuit/crypto/package-info.java
+++ b/src/main/java/org/biscuitsec/biscuit/crypto/package-info.java
@@ -1,4 +1,4 @@
 /**
  * Cryptographic operations for Biscuit tokens
  */
-package com.clevercloud.biscuit.crypto;
\ No newline at end of file
+package org.biscuitsec.biscuit.crypto;
\ No newline at end of file
diff --git a/src/main/java/com/clevercloud/biscuit/datalog/Check.java b/src/main/java/org/biscuitsec/biscuit/datalog/Check.java
similarity index 93%
rename from src/main/java/com/clevercloud/biscuit/datalog/Check.java
rename to src/main/java/org/biscuitsec/biscuit/datalog/Check.java
index 2bc24bac..a3eb9745 100644
--- a/src/main/java/com/clevercloud/biscuit/datalog/Check.java
+++ b/src/main/java/org/biscuitsec/biscuit/datalog/Check.java
@@ -1,7 +1,7 @@
-package com.clevercloud.biscuit.datalog;
+package org.biscuitsec.biscuit.datalog;
 
 import biscuit.format.schema.Schema;
-import com.clevercloud.biscuit.error.Error;
+import org.biscuitsec.biscuit.error.Error;
 import io.vavr.control.Either;
 
 import java.util.ArrayList;
@@ -9,7 +9,6 @@
 import java.util.Objects;
 
 import static biscuit.format.schema.Schema.CheckV2.Kind.All;
-import static biscuit.format.schema.Schema.CheckV2.Kind.One;
 import static io.vavr.API.Left;
 import static io.vavr.API.Right;
 
diff --git a/src/main/java/com/clevercloud/biscuit/datalog/Combinator.java b/src/main/java/org/biscuitsec/biscuit/datalog/Combinator.java
similarity index 99%
rename from src/main/java/com/clevercloud/biscuit/datalog/Combinator.java
rename to src/main/java/org/biscuitsec/biscuit/datalog/Combinator.java
index e32026c3..0a3ff42d 100644
--- a/src/main/java/com/clevercloud/biscuit/datalog/Combinator.java
+++ b/src/main/java/org/biscuitsec/biscuit/datalog/Combinator.java
@@ -1,4 +1,4 @@
-package com.clevercloud.biscuit.datalog;
+package org.biscuitsec.biscuit.datalog;
 
 import io.vavr.Tuple2;
 import io.vavr.control.Option;
diff --git a/src/main/java/com/clevercloud/biscuit/datalog/Fact.java b/src/main/java/org/biscuitsec/biscuit/datalog/Fact.java
similarity index 95%
rename from src/main/java/com/clevercloud/biscuit/datalog/Fact.java
rename to src/main/java/org/biscuitsec/biscuit/datalog/Fact.java
index f39f5625..4bc73d64 100644
--- a/src/main/java/com/clevercloud/biscuit/datalog/Fact.java
+++ b/src/main/java/org/biscuitsec/biscuit/datalog/Fact.java
@@ -1,7 +1,7 @@
-package com.clevercloud.biscuit.datalog;
+package org.biscuitsec.biscuit.datalog;
 
 import biscuit.format.schema.Schema;
-import com.clevercloud.biscuit.error.Error;
+import org.biscuitsec.biscuit.error.Error;
 import io.vavr.control.Either;
 
 import java.io.Serializable;
diff --git a/src/main/java/com/clevercloud/biscuit/datalog/FactSet.java b/src/main/java/org/biscuitsec/biscuit/datalog/FactSet.java
similarity index 98%
rename from src/main/java/com/clevercloud/biscuit/datalog/FactSet.java
rename to src/main/java/org/biscuitsec/biscuit/datalog/FactSet.java
index 29374f61..e593e9ca 100644
--- a/src/main/java/com/clevercloud/biscuit/datalog/FactSet.java
+++ b/src/main/java/org/biscuitsec/biscuit/datalog/FactSet.java
@@ -1,4 +1,4 @@
-package com.clevercloud.biscuit.datalog;
+package org.biscuitsec.biscuit.datalog;
 
 import io.vavr.Tuple2;
 
diff --git a/src/main/java/com/clevercloud/biscuit/datalog/MatchedVariables.java b/src/main/java/org/biscuitsec/biscuit/datalog/MatchedVariables.java
similarity index 95%
rename from src/main/java/com/clevercloud/biscuit/datalog/MatchedVariables.java
rename to src/main/java/org/biscuitsec/biscuit/datalog/MatchedVariables.java
index 9e90872e..a5e9d408 100644
--- a/src/main/java/com/clevercloud/biscuit/datalog/MatchedVariables.java
+++ b/src/main/java/org/biscuitsec/biscuit/datalog/MatchedVariables.java
@@ -1,6 +1,6 @@
-package com.clevercloud.biscuit.datalog;
+package org.biscuitsec.biscuit.datalog;
 
-import com.clevercloud.biscuit.datalog.expressions.Expression;
+import org.biscuitsec.biscuit.datalog.expressions.Expression;
 import io.vavr.control.Option;
 
 import java.io.Serializable;
diff --git a/src/main/java/com/clevercloud/biscuit/datalog/Origin.java b/src/main/java/org/biscuitsec/biscuit/datalog/Origin.java
similarity index 97%
rename from src/main/java/com/clevercloud/biscuit/datalog/Origin.java
rename to src/main/java/org/biscuitsec/biscuit/datalog/Origin.java
index 8f1b86e9..5c49d117 100644
--- a/src/main/java/com/clevercloud/biscuit/datalog/Origin.java
+++ b/src/main/java/org/biscuitsec/biscuit/datalog/Origin.java
@@ -1,4 +1,4 @@
-package com.clevercloud.biscuit.datalog;
+package org.biscuitsec.biscuit.datalog;
 
 import java.util.*;
 
diff --git a/src/main/java/com/clevercloud/biscuit/datalog/Predicate.java b/src/main/java/org/biscuitsec/biscuit/datalog/Predicate.java
similarity index 97%
rename from src/main/java/com/clevercloud/biscuit/datalog/Predicate.java
rename to src/main/java/org/biscuitsec/biscuit/datalog/Predicate.java
index 486fd0a6..1ff05650 100644
--- a/src/main/java/com/clevercloud/biscuit/datalog/Predicate.java
+++ b/src/main/java/org/biscuitsec/biscuit/datalog/Predicate.java
@@ -1,7 +1,7 @@
-package com.clevercloud.biscuit.datalog;
+package org.biscuitsec.biscuit.datalog;
 
 import biscuit.format.schema.Schema;
-import com.clevercloud.biscuit.error.Error;
+import org.biscuitsec.biscuit.error.Error;
 import io.vavr.control.Either;
 
 import java.io.Serializable;
diff --git a/src/main/java/com/clevercloud/biscuit/datalog/Rule.java b/src/main/java/org/biscuitsec/biscuit/datalog/Rule.java
similarity index 96%
rename from src/main/java/com/clevercloud/biscuit/datalog/Rule.java
rename to src/main/java/org/biscuitsec/biscuit/datalog/Rule.java
index 8c4834be..c580627d 100644
--- a/src/main/java/com/clevercloud/biscuit/datalog/Rule.java
+++ b/src/main/java/org/biscuitsec/biscuit/datalog/Rule.java
@@ -1,9 +1,8 @@
-package com.clevercloud.biscuit.datalog;
+package org.biscuitsec.biscuit.datalog;
 
 import biscuit.format.schema.Schema;
-import com.clevercloud.biscuit.datalog.expressions.Expression;
-import com.clevercloud.biscuit.error.Error;
-import com.clevercloud.biscuit.error.Error.InvalidType;
+import org.biscuitsec.biscuit.datalog.expressions.Expression;
+import org.biscuitsec.biscuit.error.Error;
 import io.vavr.Tuple2;
 import io.vavr.Tuple3;
 import io.vavr.control.Either;
@@ -66,7 +65,7 @@ public Stream<Either<Error, Tuple2<Origin, Fact>>> apply(
                           }
                           // continue evaluating if true
                        } else {
-                          return Either.left(new InvalidType());
+                          return Either.left(new Error.InvalidType());
                        }
                     }
                  }
@@ -131,7 +130,7 @@ public boolean find_match(final FactSet facts, Long origin, TrustedOrigins scope
    }
 
    // verifies that the expressions return true for every matching set of facts
-   public boolean check_match_all(final FactSet facts, TrustedOrigins scope, SymbolTable symbols) throws InvalidType {
+   public boolean check_match_all(final FactSet facts, TrustedOrigins scope, SymbolTable symbols) throws Error.InvalidType {
       MatchedVariables variables = variablesSet();
 
       if(this.body.isEmpty()) {
@@ -159,7 +158,7 @@ public boolean check_match_all(final FactSet facts, TrustedOrigins scope, Symbol
                     }
                     // continue evaluating if true
                  } else {
-                    throw new InvalidType();
+                    throw new Error.InvalidType();
                  }
               }
            }
diff --git a/src/main/java/com/clevercloud/biscuit/datalog/RuleSet.java b/src/main/java/org/biscuitsec/biscuit/datalog/RuleSet.java
similarity index 96%
rename from src/main/java/com/clevercloud/biscuit/datalog/RuleSet.java
rename to src/main/java/org/biscuitsec/biscuit/datalog/RuleSet.java
index 748d642b..e7643359 100644
--- a/src/main/java/com/clevercloud/biscuit/datalog/RuleSet.java
+++ b/src/main/java/org/biscuitsec/biscuit/datalog/RuleSet.java
@@ -1,4 +1,4 @@
-package com.clevercloud.biscuit.datalog;
+package org.biscuitsec.biscuit.datalog;
 
 import io.vavr.Tuple2;
 
diff --git a/src/main/java/com/clevercloud/biscuit/datalog/RunLimits.java b/src/main/java/org/biscuitsec/biscuit/datalog/RunLimits.java
similarity index 90%
rename from src/main/java/com/clevercloud/biscuit/datalog/RunLimits.java
rename to src/main/java/org/biscuitsec/biscuit/datalog/RunLimits.java
index 48fd5a38..57a95833 100644
--- a/src/main/java/com/clevercloud/biscuit/datalog/RunLimits.java
+++ b/src/main/java/org/biscuitsec/biscuit/datalog/RunLimits.java
@@ -1,4 +1,4 @@
-package com.clevercloud.biscuit.datalog;
+package org.biscuitsec.biscuit.datalog;
 
 import java.time.Duration;
 
diff --git a/src/main/java/com/clevercloud/biscuit/datalog/SchemaVersion.java b/src/main/java/org/biscuitsec/biscuit/datalog/SchemaVersion.java
similarity index 86%
rename from src/main/java/com/clevercloud/biscuit/datalog/SchemaVersion.java
rename to src/main/java/org/biscuitsec/biscuit/datalog/SchemaVersion.java
index ed7fed73..075fd29a 100644
--- a/src/main/java/com/clevercloud/biscuit/datalog/SchemaVersion.java
+++ b/src/main/java/org/biscuitsec/biscuit/datalog/SchemaVersion.java
@@ -1,14 +1,13 @@
-package com.clevercloud.biscuit.datalog;
+package org.biscuitsec.biscuit.datalog;
 
-import com.clevercloud.biscuit.datalog.expressions.Expression;
-import com.clevercloud.biscuit.datalog.expressions.Op;
-import com.clevercloud.biscuit.error.Error;
+import org.biscuitsec.biscuit.datalog.expressions.Expression;
+import org.biscuitsec.biscuit.datalog.expressions.Op;
+import org.biscuitsec.biscuit.error.Error;
 import io.vavr.control.Either;
+import org.biscuitsec.biscuit.token.format.SerializedBiscuit;
 
 import java.util.List;
 
-import static com.clevercloud.biscuit.datalog.Check.Kind.All;
-import static com.clevercloud.biscuit.token.format.SerializedBiscuit.MIN_SCHEMA_VERSION;
 import static io.vavr.API.Left;
 import static io.vavr.API.Right;
 
@@ -41,7 +40,7 @@ public SchemaVersion(List<Fact> facts, List<Rule> rules, List<Check> checks, Lis
 
         containsCheckAll = false;
         for (Check check : checks) {
-            if (check.kind() == All) {
+            if (check.kind() == Check.Kind.All) {
                 containsCheckAll = true;
                 break;
             }
@@ -62,7 +61,7 @@ public int version() {
         if (containsScopes || containsV4 || containsCheckAll) {
             return 4;
         } else {
-            return MIN_SCHEMA_VERSION;
+            return SerializedBiscuit.MIN_SCHEMA_VERSION;
         }
     }
 
diff --git a/src/main/java/com/clevercloud/biscuit/datalog/Scope.java b/src/main/java/org/biscuitsec/biscuit/datalog/Scope.java
similarity index 96%
rename from src/main/java/com/clevercloud/biscuit/datalog/Scope.java
rename to src/main/java/org/biscuitsec/biscuit/datalog/Scope.java
index 0658bfde..ea374773 100644
--- a/src/main/java/com/clevercloud/biscuit/datalog/Scope.java
+++ b/src/main/java/org/biscuitsec/biscuit/datalog/Scope.java
@@ -1,7 +1,7 @@
-package com.clevercloud.biscuit.datalog;
+package org.biscuitsec.biscuit.datalog;
 
 import biscuit.format.schema.Schema;
-import com.clevercloud.biscuit.error.Error;
+import org.biscuitsec.biscuit.error.Error;
 import io.vavr.control.Either;
 
 
diff --git a/src/main/java/com/clevercloud/biscuit/datalog/SymbolTable.java b/src/main/java/org/biscuitsec/biscuit/datalog/SymbolTable.java
similarity index 97%
rename from src/main/java/com/clevercloud/biscuit/datalog/SymbolTable.java
rename to src/main/java/org/biscuitsec/biscuit/datalog/SymbolTable.java
index 6bdeef92..ae7ac8ee 100644
--- a/src/main/java/com/clevercloud/biscuit/datalog/SymbolTable.java
+++ b/src/main/java/org/biscuitsec/biscuit/datalog/SymbolTable.java
@@ -1,9 +1,9 @@
-package com.clevercloud.biscuit.datalog;
+package org.biscuitsec.biscuit.datalog;
 
-import com.clevercloud.biscuit.crypto.PublicKey;
-import com.clevercloud.biscuit.crypto.TokenSignature;
-import com.clevercloud.biscuit.datalog.expressions.Expression;
-import com.clevercloud.biscuit.token.builder.Utils;
+import org.biscuitsec.biscuit.crypto.PublicKey;
+import org.biscuitsec.biscuit.crypto.TokenSignature;
+import org.biscuitsec.biscuit.datalog.expressions.Expression;
+import org.biscuitsec.biscuit.token.builder.Utils;
 import io.vavr.control.Option;
 
 import java.io.Serializable;
diff --git a/src/main/java/com/clevercloud/biscuit/datalog/TemporarySymbolTable.java b/src/main/java/org/biscuitsec/biscuit/datalog/TemporarySymbolTable.java
similarity index 90%
rename from src/main/java/com/clevercloud/biscuit/datalog/TemporarySymbolTable.java
rename to src/main/java/org/biscuitsec/biscuit/datalog/TemporarySymbolTable.java
index 6c359d08..c64b5a26 100644
--- a/src/main/java/com/clevercloud/biscuit/datalog/TemporarySymbolTable.java
+++ b/src/main/java/org/biscuitsec/biscuit/datalog/TemporarySymbolTable.java
@@ -1,11 +1,11 @@
-package com.clevercloud.biscuit.datalog;
+package org.biscuitsec.biscuit.datalog;
 
 import io.vavr.control.Option;
 
 import java.util.ArrayList;
 import java.util.List;
 
-import static com.clevercloud.biscuit.datalog.SymbolTable.DEFAULT_SYMBOLS_OFFSET;
+import static org.biscuitsec.biscuit.datalog.SymbolTable.DEFAULT_SYMBOLS_OFFSET;
 
 public class TemporarySymbolTable {
     SymbolTable base;
diff --git a/src/main/java/com/clevercloud/biscuit/datalog/Term.java b/src/main/java/org/biscuitsec/biscuit/datalog/Term.java
similarity index 88%
rename from src/main/java/com/clevercloud/biscuit/datalog/Term.java
rename to src/main/java/org/biscuitsec/biscuit/datalog/Term.java
index 2e1bb3a5..d90fe6ef 100644
--- a/src/main/java/com/clevercloud/biscuit/datalog/Term.java
+++ b/src/main/java/org/biscuitsec/biscuit/datalog/Term.java
@@ -1,9 +1,10 @@
-package com.clevercloud.biscuit.datalog;
+package org.biscuitsec.biscuit.datalog;
 
 import biscuit.format.schema.Schema;
-import com.clevercloud.biscuit.error.Error;
+import org.biscuitsec.biscuit.error.Error;
 import com.google.protobuf.ByteString;
 import io.vavr.control.Either;
+
 import static io.vavr.API.Left;
 import static io.vavr.API.Right;
 
@@ -36,7 +37,7 @@ static public Either<Error.FormatError, Term> deserialize_enumV2(Schema.TermV2 t
       }
    }
 
-   public abstract com.clevercloud.biscuit.token.builder.Term toTerm(SymbolTable symbols);
+   public abstract org.biscuitsec.biscuit.token.builder.Term toTerm(SymbolTable symbols);
 
    public final static class Date extends Term implements Serializable {
       private final long value;
@@ -90,8 +91,8 @@ static public Either<Error.FormatError, Term> deserializeV2(Schema.TermV2 term)
          }
       }
 
-      public com.clevercloud.biscuit.token.builder.Term toTerm(SymbolTable symbols) {
-         return new com.clevercloud.biscuit.token.builder.Term.Date(this.value);
+      public org.biscuitsec.biscuit.token.builder.Term toTerm(SymbolTable symbols) {
+         return new org.biscuitsec.biscuit.token.builder.Term.Date(this.value);
       }
    }
 
@@ -149,8 +150,8 @@ static public Either<Error.FormatError, Term> deserializeV2(Schema.TermV2 term)
          }
       }
 
-      public com.clevercloud.biscuit.token.builder.Term toTerm(SymbolTable symbols) {
-         return new com.clevercloud.biscuit.token.builder.Term.Integer(this.value);
+      public org.biscuitsec.biscuit.token.builder.Term toTerm(SymbolTable symbols) {
+         return new org.biscuitsec.biscuit.token.builder.Term.Integer(this.value);
       }
    }
 
@@ -208,8 +209,8 @@ static public Either<Error.FormatError, Term> deserializeV2(Schema.TermV2 term)
          }
       }
 
-      public com.clevercloud.biscuit.token.builder.Term toTerm(SymbolTable symbols) {
-         return new com.clevercloud.biscuit.token.builder.Term.Bytes(this.value);
+      public org.biscuitsec.biscuit.token.builder.Term toTerm(SymbolTable symbols) {
+         return new org.biscuitsec.biscuit.token.builder.Term.Bytes(this.value);
       }
    }
 
@@ -262,8 +263,8 @@ static public Either<Error.FormatError, Term> deserializeV2(Schema.TermV2 term)
          }
       }
 
-      public com.clevercloud.biscuit.token.builder.Term toTerm(SymbolTable symbols) {
-         return new com.clevercloud.biscuit.token.builder.Term.Str(symbols.print_symbol((int) this.value));
+      public org.biscuitsec.biscuit.token.builder.Term toTerm(SymbolTable symbols) {
+         return new org.biscuitsec.biscuit.token.builder.Term.Str(symbols.print_symbol((int) this.value));
       }
    }
 
@@ -315,8 +316,8 @@ static public Either<Error.FormatError, Term> deserializeV2(Schema.TermV2 term)
          }
       }
 
-      public com.clevercloud.biscuit.token.builder.Term toTerm(SymbolTable symbols) {
-         return new com.clevercloud.biscuit.token.builder.Term.Variable(symbols.print_symbol((int) this.value));
+      public org.biscuitsec.biscuit.token.builder.Term toTerm(SymbolTable symbols) {
+         return new org.biscuitsec.biscuit.token.builder.Term.Variable(symbols.print_symbol((int) this.value));
       }
    }
 
@@ -374,8 +375,8 @@ static public Either<Error.FormatError, Term> deserializeV2(Schema.TermV2 term)
          }
       }
 
-      public com.clevercloud.biscuit.token.builder.Term toTerm(SymbolTable symbols) {
-         return new com.clevercloud.biscuit.token.builder.Term.Bool(this.value);
+      public org.biscuitsec.biscuit.token.builder.Term toTerm(SymbolTable symbols) {
+         return new org.biscuitsec.biscuit.token.builder.Term.Bool(this.value);
       }
    }
 
@@ -463,14 +464,14 @@ static public Either<Error.FormatError, Term> deserializeV2(Schema.TermV2 term)
          }
       }
 
-      public com.clevercloud.biscuit.token.builder.Term toTerm(SymbolTable symbols) {
-         HashSet<com.clevercloud.biscuit.token.builder.Term> s = new HashSet<>();
+      public org.biscuitsec.biscuit.token.builder.Term toTerm(SymbolTable symbols) {
+         HashSet<org.biscuitsec.biscuit.token.builder.Term> s = new HashSet<>();
 
          for(Term i: this.value) {
             s.add(i.toTerm(symbols));
          }
 
-         return new com.clevercloud.biscuit.token.builder.Term.Set(s);
+         return new org.biscuitsec.biscuit.token.builder.Term.Set(s);
       }
    }
 }
diff --git a/src/main/java/com/clevercloud/biscuit/datalog/TrustedOrigins.java b/src/main/java/org/biscuitsec/biscuit/datalog/TrustedOrigins.java
similarity index 98%
rename from src/main/java/com/clevercloud/biscuit/datalog/TrustedOrigins.java
rename to src/main/java/org/biscuitsec/biscuit/datalog/TrustedOrigins.java
index 8d1d14f2..5e063cb6 100644
--- a/src/main/java/com/clevercloud/biscuit/datalog/TrustedOrigins.java
+++ b/src/main/java/org/biscuitsec/biscuit/datalog/TrustedOrigins.java
@@ -1,4 +1,4 @@
-package com.clevercloud.biscuit.datalog;
+package org.biscuitsec.biscuit.datalog;
 
 import java.util.HashMap;
 import java.util.List;
diff --git a/src/main/java/com/clevercloud/biscuit/datalog/World.java b/src/main/java/org/biscuitsec/biscuit/datalog/World.java
similarity index 98%
rename from src/main/java/com/clevercloud/biscuit/datalog/World.java
rename to src/main/java/org/biscuitsec/biscuit/datalog/World.java
index 0eaf2741..217c318e 100644
--- a/src/main/java/com/clevercloud/biscuit/datalog/World.java
+++ b/src/main/java/org/biscuitsec/biscuit/datalog/World.java
@@ -1,6 +1,6 @@
-package com.clevercloud.biscuit.datalog;
+package org.biscuitsec.biscuit.datalog;
 
-import com.clevercloud.biscuit.error.Error;
+import org.biscuitsec.biscuit.error.Error;
 import io.vavr.Tuple2;
 import io.vavr.control.Either;
 
diff --git a/src/main/java/com/clevercloud/biscuit/datalog/expressions/Expression.java b/src/main/java/org/biscuitsec/biscuit/datalog/expressions/Expression.java
similarity index 88%
rename from src/main/java/com/clevercloud/biscuit/datalog/expressions/Expression.java
rename to src/main/java/org/biscuitsec/biscuit/datalog/expressions/Expression.java
index 7a6098d3..0b0e7107 100644
--- a/src/main/java/com/clevercloud/biscuit/datalog/expressions/Expression.java
+++ b/src/main/java/org/biscuitsec/biscuit/datalog/expressions/Expression.java
@@ -1,10 +1,10 @@
-package com.clevercloud.biscuit.datalog.expressions;
+package org.biscuitsec.biscuit.datalog.expressions;
 
 import biscuit.format.schema.Schema;
-import com.clevercloud.biscuit.datalog.TemporarySymbolTable;
-import com.clevercloud.biscuit.datalog.Term;
-import com.clevercloud.biscuit.datalog.SymbolTable;
-import com.clevercloud.biscuit.error.Error;
+import org.biscuitsec.biscuit.datalog.TemporarySymbolTable;
+import org.biscuitsec.biscuit.datalog.Term;
+import org.biscuitsec.biscuit.datalog.SymbolTable;
+import org.biscuitsec.biscuit.error.Error;
 import io.vavr.control.Either;
 import io.vavr.control.Option;
 
diff --git a/src/main/java/com/clevercloud/biscuit/datalog/expressions/Op.java b/src/main/java/org/biscuitsec/biscuit/datalog/expressions/Op.java
similarity index 99%
rename from src/main/java/com/clevercloud/biscuit/datalog/expressions/Op.java
rename to src/main/java/org/biscuitsec/biscuit/datalog/expressions/Op.java
index de3077fb..8fff095f 100644
--- a/src/main/java/com/clevercloud/biscuit/datalog/expressions/Op.java
+++ b/src/main/java/org/biscuitsec/biscuit/datalog/expressions/Op.java
@@ -1,10 +1,10 @@
-package com.clevercloud.biscuit.datalog.expressions;
+package org.biscuitsec.biscuit.datalog.expressions;
 
 import biscuit.format.schema.Schema;
-import com.clevercloud.biscuit.datalog.TemporarySymbolTable;
-import com.clevercloud.biscuit.datalog.Term;
-import com.clevercloud.biscuit.datalog.SymbolTable;
-import com.clevercloud.biscuit.error.Error;
+import org.biscuitsec.biscuit.datalog.TemporarySymbolTable;
+import org.biscuitsec.biscuit.datalog.Term;
+import org.biscuitsec.biscuit.datalog.SymbolTable;
+import org.biscuitsec.biscuit.error.Error;
 import com.google.re2j.Matcher;
 import com.google.re2j.Pattern;
 import io.vavr.control.Either;
diff --git a/src/main/java/com/clevercloud/biscuit/datalog/package-info.java b/src/main/java/org/biscuitsec/biscuit/datalog/package-info.java
similarity index 63%
rename from src/main/java/com/clevercloud/biscuit/datalog/package-info.java
rename to src/main/java/org/biscuitsec/biscuit/datalog/package-info.java
index c95ab519..f8a2fe55 100644
--- a/src/main/java/com/clevercloud/biscuit/datalog/package-info.java
+++ b/src/main/java/org/biscuitsec/biscuit/datalog/package-info.java
@@ -1,4 +1,4 @@
 /**
  * Implementation of the Datalog engine for the check language
  */
-package com.clevercloud.biscuit.datalog;
\ No newline at end of file
+package org.biscuitsec.biscuit.datalog;
\ No newline at end of file
diff --git a/src/main/java/com/clevercloud/biscuit/error/Error.java b/src/main/java/org/biscuitsec/biscuit/error/Error.java
similarity index 98%
rename from src/main/java/com/clevercloud/biscuit/error/Error.java
rename to src/main/java/org/biscuitsec/biscuit/error/Error.java
index 7b2296fb..d78146d6 100644
--- a/src/main/java/com/clevercloud/biscuit/error/Error.java
+++ b/src/main/java/org/biscuitsec/biscuit/error/Error.java
@@ -1,6 +1,6 @@
-package com.clevercloud.biscuit.error;
+package org.biscuitsec.biscuit.error;
 
-import com.clevercloud.biscuit.datalog.expressions.Expression;
+import org.biscuitsec.biscuit.datalog.expressions.Expression;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonPrimitive;
@@ -563,9 +563,9 @@ public JsonElement toJson(){
     }
 
     public static class Parser extends Error {
-        final public com.clevercloud.biscuit.token.builder.parser.Error error;
+        final public org.biscuitsec.biscuit.token.builder.parser.Error error;
 
-        public Parser(com.clevercloud.biscuit.token.builder.parser.Error error) {
+        public Parser(org.biscuitsec.biscuit.token.builder.parser.Error error) {
             this.error = error;
         }
 
diff --git a/src/main/java/com/clevercloud/biscuit/error/FailedCheck.java b/src/main/java/org/biscuitsec/biscuit/error/FailedCheck.java
similarity index 99%
rename from src/main/java/com/clevercloud/biscuit/error/FailedCheck.java
rename to src/main/java/org/biscuitsec/biscuit/error/FailedCheck.java
index 9f76f934..8aa17133 100644
--- a/src/main/java/com/clevercloud/biscuit/error/FailedCheck.java
+++ b/src/main/java/org/biscuitsec/biscuit/error/FailedCheck.java
@@ -1,4 +1,4 @@
-package com.clevercloud.biscuit.error;
+package org.biscuitsec.biscuit.error;
 
 import com.google.gson.*;
 
diff --git a/src/main/java/com/clevercloud/biscuit/error/LogicError.java b/src/main/java/org/biscuitsec/biscuit/error/LogicError.java
similarity index 99%
rename from src/main/java/com/clevercloud/biscuit/error/LogicError.java
rename to src/main/java/org/biscuitsec/biscuit/error/LogicError.java
index 7d725853..6aba1978 100644
--- a/src/main/java/com/clevercloud/biscuit/error/LogicError.java
+++ b/src/main/java/org/biscuitsec/biscuit/error/LogicError.java
@@ -1,4 +1,4 @@
-package com.clevercloud.biscuit.error;
+package org.biscuitsec.biscuit.error;
 
 import java.util.List;
 import java.util.Objects;
diff --git a/src/main/java/org/biscuitsec/biscuit/error/package-info.java b/src/main/java/org/biscuitsec/biscuit/error/package-info.java
new file mode 100644
index 00000000..29a9773d
--- /dev/null
+++ b/src/main/java/org/biscuitsec/biscuit/error/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * Error description classes
+ */
+package org.biscuitsec.biscuit.error;
\ No newline at end of file
diff --git a/src/main/java/com/clevercloud/biscuit/token/Authorizer.java b/src/main/java/org/biscuitsec/biscuit/token/Authorizer.java
similarity index 70%
rename from src/main/java/com/clevercloud/biscuit/token/Authorizer.java
rename to src/main/java/org/biscuitsec/biscuit/token/Authorizer.java
index 162c82dc..62a02561 100644
--- a/src/main/java/com/clevercloud/biscuit/token/Authorizer.java
+++ b/src/main/java/org/biscuitsec/biscuit/token/Authorizer.java
@@ -1,25 +1,23 @@
-package com.clevercloud.biscuit.token;
-
-import com.clevercloud.biscuit.crypto.PublicKey;
-import com.clevercloud.biscuit.datalog.*;
-import com.clevercloud.biscuit.datalog.Scope;
-import com.clevercloud.biscuit.error.Error;
-import com.clevercloud.biscuit.error.FailedCheck;
-import com.clevercloud.biscuit.error.LogicError;
-import com.clevercloud.biscuit.token.builder.*;
-import com.clevercloud.biscuit.token.builder.Check;
-import com.clevercloud.biscuit.token.builder.Fact;
-import com.clevercloud.biscuit.token.builder.Rule;
-import com.clevercloud.biscuit.token.builder.Term;
+package org.biscuitsec.biscuit.token;
+
+import org.biscuitsec.biscuit.crypto.PublicKey;
+import org.biscuitsec.biscuit.datalog.*;
+import org.biscuitsec.biscuit.datalog.Rule;
+import org.biscuitsec.biscuit.error.Error;
+import org.biscuitsec.biscuit.error.FailedCheck;
+import org.biscuitsec.biscuit.error.LogicError;
+import org.biscuitsec.biscuit.token.builder.*;
 import io.vavr.Tuple2;
 import io.vavr.control.Either;
 import io.vavr.control.Option;
+import org.biscuitsec.biscuit.datalog.Scope;
+import org.biscuitsec.biscuit.token.builder.Term;
+import org.biscuitsec.biscuit.token.builder.parser.Parser;
 
 import java.time.Instant;
 import java.util.*;
 import java.util.stream.Collectors;
 
-import static com.clevercloud.biscuit.token.builder.Utils.*;
 import static io.vavr.API.Left;
 import static io.vavr.API.Right;
 
@@ -28,8 +26,8 @@
  */
 public class Authorizer {
     Biscuit token;
-    List<Check> checks;
-    List<List<com.clevercloud.biscuit.datalog.Check>> token_checks;
+    List<org.biscuitsec.biscuit.token.builder.Check> checks;
+    List<List<org.biscuitsec.biscuit.datalog.Check>> token_checks;
     List<Policy> policies;
     List<Scope> scopes;
     HashMap<Long, List<Long>> publicKeyToBlockId;
@@ -64,8 +62,8 @@ public Authorizer() {
         this.publicKeyToBlockId = new HashMap<>();
     }
 
-    private Authorizer(Biscuit token, List<Check> checks, List<Policy> policies,
-               List<List<com.clevercloud.biscuit.datalog.Check>> token_checks, World world, SymbolTable symbols) {
+    private Authorizer(Biscuit token, List<org.biscuitsec.biscuit.token.builder.Check> checks, List<Policy> policies,
+                       List<List<org.biscuitsec.biscuit.datalog.Check>> token_checks, World world, SymbolTable symbols) {
         this.token = token;
         this.checks = checks;
         this.policies = policies;
@@ -95,15 +93,15 @@ public Authorizer clone() {
 
     public void update_on_token() throws Error.FailedLogic {
         if (token != null) {
-            for (com.clevercloud.biscuit.datalog.Fact fact : token.authority.facts) {
-                com.clevercloud.biscuit.datalog.Fact converted_fact = Fact.convert_from(fact, token.symbols).convert(this.symbols);
+            for (org.biscuitsec.biscuit.datalog.Fact fact : token.authority.facts) {
+                org.biscuitsec.biscuit.datalog.Fact converted_fact = org.biscuitsec.biscuit.token.builder.Fact.convert_from(fact, token.symbols).convert(this.symbols);
                 world.add_fact(new Origin(0), converted_fact);
             }
-            for (com.clevercloud.biscuit.datalog.Rule rule : token.authority.rules) {
-                com.clevercloud.biscuit.token.builder.Rule _rule = Rule.convert_from(rule, token.symbols);
-                com.clevercloud.biscuit.datalog.Rule converted_rule = _rule.convert(this.symbols);
+            for (org.biscuitsec.biscuit.datalog.Rule rule : token.authority.rules) {
+                org.biscuitsec.biscuit.token.builder.Rule _rule = org.biscuitsec.biscuit.token.builder.Rule.convert_from(rule, token.symbols);
+                org.biscuitsec.biscuit.datalog.Rule converted_rule = _rule.convert(this.symbols);
 
-                Either<String,Rule> res = _rule.validate_variables();
+                Either<String, org.biscuitsec.biscuit.token.builder.Rule> res = _rule.validate_variables();
                 if(res.isLeft()){
                     throw new Error.FailedLogic(new LogicError.InvalidBlockRule(0, token.symbols.print_rule(converted_rule)));
                 }
@@ -126,26 +124,26 @@ public Authorizer add_token(Biscuit token) throws Error.FailedLogic {
         return this;
     }
 
-    public Authorizer add_fact(Fact fact) {
+    public Authorizer add_fact(org.biscuitsec.biscuit.token.builder.Fact fact) {
         world.add_fact(Origin.authorizer(), fact.convert(symbols));
         return this;
     }
 
     public Authorizer add_fact(String s) throws Error.Parser {
-        Either<com.clevercloud.biscuit.token.builder.parser.Error, Tuple2<String, Fact>> res =
-                com.clevercloud.biscuit.token.builder.parser.Parser.fact(s);
+        Either<org.biscuitsec.biscuit.token.builder.parser.Error, Tuple2<String, org.biscuitsec.biscuit.token.builder.Fact>> res =
+                Parser.fact(s);
 
         if (res.isLeft()) {
             throw new Error.Parser(res.getLeft());
         }
 
-        Tuple2<String, com.clevercloud.biscuit.token.builder.Fact> t = res.get();
+        Tuple2<String, org.biscuitsec.biscuit.token.builder.Fact> t = res.get();
 
         return this.add_fact(t._2);
     }
 
-    public Authorizer add_rule(Rule rule) {
-       com.clevercloud.biscuit.datalog.Rule r = rule.convert(symbols);
+    public Authorizer add_rule(org.biscuitsec.biscuit.token.builder.Rule rule) {
+       org.biscuitsec.biscuit.datalog.Rule r = rule.convert(symbols);
         TrustedOrigins ruleTrustedOrigins = TrustedOrigins.fromScopes(
                 r.scopes(),
                 this.authorizerTrustedOrigins(),
@@ -166,48 +164,48 @@ public TrustedOrigins authorizerTrustedOrigins() {
     }
 
     public Authorizer add_rule(String s) throws Error.Parser {
-        Either<com.clevercloud.biscuit.token.builder.parser.Error, Tuple2<String, com.clevercloud.biscuit.token.builder.Rule>> res =
-                com.clevercloud.biscuit.token.builder.parser.Parser.rule(s);
+        Either<org.biscuitsec.biscuit.token.builder.parser.Error, Tuple2<String, org.biscuitsec.biscuit.token.builder.Rule>> res =
+                Parser.rule(s);
 
         if (res.isLeft()) {
             throw new Error.Parser(res.getLeft());
         }
 
-        Tuple2<String, com.clevercloud.biscuit.token.builder.Rule> t = res.get();
+        Tuple2<String, org.biscuitsec.biscuit.token.builder.Rule> t = res.get();
 
         return add_rule(t._2);
     }
 
-    public Authorizer add_check(Check check) {
+    public Authorizer add_check(org.biscuitsec.biscuit.token.builder.Check check) {
         this.checks.add(check);
         return this;
     }
 
     public Authorizer add_check(String s) throws Error.Parser {
-        Either<com.clevercloud.biscuit.token.builder.parser.Error, Tuple2<String, com.clevercloud.biscuit.token.builder.Check>> res =
-                com.clevercloud.biscuit.token.builder.parser.Parser.check(s);
+        Either<org.biscuitsec.biscuit.token.builder.parser.Error, Tuple2<String, org.biscuitsec.biscuit.token.builder.Check>> res =
+                Parser.check(s);
 
         if (res.isLeft()) {
             throw new Error.Parser(res.getLeft());
         }
 
-        Tuple2<String, com.clevercloud.biscuit.token.builder.Check> t = res.get();
+        Tuple2<String, org.biscuitsec.biscuit.token.builder.Check> t = res.get();
 
         return add_check(t._2);
     }
 
     public Authorizer set_time() throws Error.Language {
-        world.add_fact(Origin.authorizer(), fact("time", List.of(date(new Date()))).convert(symbols));
+        world.add_fact(Origin.authorizer(), Utils.fact("time", List.of(Utils.date(new Date()))).convert(symbols));
         return this;
     }
 
     public List<String> get_revocation_ids() throws Error {
         ArrayList<String> ids = new ArrayList<>();
 
-        final Rule getRevocationIds = rule(
+        final org.biscuitsec.biscuit.token.builder.Rule getRevocationIds = Utils.rule(
                 "revocation_id",
-                List.of(var("id")),
-                List.of(pred("revocation_id", List.of(var("id"))))
+                List.of(Utils.var("id")),
+                List.of(Utils.pred("revocation_id", List.of(Utils.var("id"))))
         );
 
         this.query(getRevocationIds).stream().forEach(fact -> {
@@ -222,9 +220,9 @@ public List<String> get_revocation_ids() throws Error {
     }
 
     public Authorizer allow() {
-        ArrayList<Rule> q = new ArrayList<>();
+        ArrayList<org.biscuitsec.biscuit.token.builder.Rule> q = new ArrayList<>();
 
-        q.add(constrained_rule(
+        q.add(Utils.constrained_rule(
                 "allow",
                 new ArrayList<>(),
                 new ArrayList<>(),
@@ -236,9 +234,9 @@ public Authorizer allow() {
     }
 
     public Authorizer deny() {
-        ArrayList<Rule> q = new ArrayList<>();
+        ArrayList<org.biscuitsec.biscuit.token.builder.Rule> q = new ArrayList<>();
 
-        q.add(constrained_rule(
+        q.add(Utils.constrained_rule(
                 "deny",
                 new ArrayList<>(),
                 new ArrayList<>(),
@@ -250,14 +248,14 @@ public Authorizer deny() {
     }
 
     public Authorizer add_policy(String s) throws Error.Parser {
-        Either<com.clevercloud.biscuit.token.builder.parser.Error, Tuple2<String, com.clevercloud.biscuit.token.Policy>> res =
-                com.clevercloud.biscuit.token.builder.parser.Parser.policy(s);
+        Either<org.biscuitsec.biscuit.token.builder.parser.Error, Tuple2<String, Policy>> res =
+                Parser.policy(s);
 
         if (res.isLeft()) {
             throw new Error.Parser(res.getLeft());
         }
 
-        Tuple2<String, com.clevercloud.biscuit.token.Policy> t = res.get();
+        Tuple2<String, Policy> t = res.get();
 
         this.policies.add(t._2);
         return this;
@@ -273,27 +271,27 @@ public Authorizer add_scope(Scope s) {
         return this;
     }
 
-    public Set<Fact> query(Rule query) throws Error {
+    public Set<org.biscuitsec.biscuit.token.builder.Fact> query(org.biscuitsec.biscuit.token.builder.Rule query) throws Error {
         return this.query(query, new RunLimits());
     }
 
-    public Set<Fact> query(String s) throws Error {
-        Either<com.clevercloud.biscuit.token.builder.parser.Error, Tuple2<String, com.clevercloud.biscuit.token.builder.Rule>> res =
-                com.clevercloud.biscuit.token.builder.parser.Parser.rule(s);
+    public Set<org.biscuitsec.biscuit.token.builder.Fact> query(String s) throws Error {
+        Either<org.biscuitsec.biscuit.token.builder.parser.Error, Tuple2<String, org.biscuitsec.biscuit.token.builder.Rule>> res =
+                Parser.rule(s);
 
         if (res.isLeft()) {
             throw new Error.Parser(res.getLeft());
         }
 
-        Tuple2<String, com.clevercloud.biscuit.token.builder.Rule> t = res.get();
+        Tuple2<String, org.biscuitsec.biscuit.token.builder.Rule> t = res.get();
 
         return query(t._2);
     }
 
-    public Set<Fact> query(Rule query, RunLimits limits) throws Error {
+    public Set<org.biscuitsec.biscuit.token.builder.Fact> query(org.biscuitsec.biscuit.token.builder.Rule query, RunLimits limits) throws Error {
         world.run(limits, symbols);
 
-        com.clevercloud.biscuit.datalog.Rule rule = query.convert(symbols);
+        org.biscuitsec.biscuit.datalog.Rule rule = query.convert(symbols);
         TrustedOrigins ruleTrustedorigins = TrustedOrigins.fromScopes(
                 rule.scopes(),
                 TrustedOrigins.defaultOrigins(),
@@ -303,25 +301,25 @@ public Set<Fact> query(Rule query, RunLimits limits) throws Error {
 
         FactSet facts = world.query_rule(rule, Long.MAX_VALUE,
                 ruleTrustedorigins, symbols);
-        Set<Fact> s = new HashSet<>();
+        Set<org.biscuitsec.biscuit.token.builder.Fact> s = new HashSet<>();
 
-        for (Iterator<com.clevercloud.biscuit.datalog.Fact> it = facts.stream().iterator(); it.hasNext(); ) {
-            com.clevercloud.biscuit.datalog.Fact f = it.next();
-            s.add(Fact.convert_from(f, symbols));
+        for (Iterator<org.biscuitsec.biscuit.datalog.Fact> it = facts.stream().iterator(); it.hasNext(); ) {
+            org.biscuitsec.biscuit.datalog.Fact f = it.next();
+            s.add(org.biscuitsec.biscuit.token.builder.Fact.convert_from(f, symbols));
         }
 
         return s;
     }
 
-    public Set<Fact> query(String s, RunLimits limits) throws Error {
-        Either<com.clevercloud.biscuit.token.builder.parser.Error, Tuple2<String, com.clevercloud.biscuit.token.builder.Rule>> res =
-                com.clevercloud.biscuit.token.builder.parser.Parser.rule(s);
+    public Set<org.biscuitsec.biscuit.token.builder.Fact> query(String s, RunLimits limits) throws Error {
+        Either<org.biscuitsec.biscuit.token.builder.parser.Error, Tuple2<String, org.biscuitsec.biscuit.token.builder.Rule>> res =
+                Parser.rule(s);
 
         if (res.isLeft()) {
             throw new Error.Parser(res.getLeft());
         }
 
-        Tuple2<String, com.clevercloud.biscuit.token.builder.Rule> t = res.get();
+        Tuple2<String, org.biscuitsec.biscuit.token.builder.Rule> t = res.get();
 
         return query(t._2, limits);
     }
@@ -339,8 +337,8 @@ public Long authorize(RunLimits limits) throws Error {
         TrustedOrigins authorizerTrustedOrigins = this.authorizerTrustedOrigins();
 
         if (token != null) {
-            for (com.clevercloud.biscuit.datalog.Fact fact : token.authority.facts) {
-                com.clevercloud.biscuit.datalog.Fact converted_fact = Fact.convert_from(fact, token.symbols).convert(this.symbols);
+            for (org.biscuitsec.biscuit.datalog.Fact fact : token.authority.facts) {
+                org.biscuitsec.biscuit.datalog.Fact converted_fact = org.biscuitsec.biscuit.token.builder.Fact.convert_from(fact, token.symbols).convert(this.symbols);
                 world.add_fact(new Origin(0), converted_fact);
             }
 
@@ -351,11 +349,11 @@ public Long authorize(RunLimits limits) throws Error {
                     this.publicKeyToBlockId
             );
 
-            for (com.clevercloud.biscuit.datalog.Rule rule : token.authority.rules) {
-                com.clevercloud.biscuit.token.builder.Rule _rule = Rule.convert_from(rule, token.symbols);
-                com.clevercloud.biscuit.datalog.Rule converted_rule = _rule.convert(this.symbols);
+            for (org.biscuitsec.biscuit.datalog.Rule rule : token.authority.rules) {
+                org.biscuitsec.biscuit.token.builder.Rule _rule = org.biscuitsec.biscuit.token.builder.Rule.convert_from(rule, token.symbols);
+                org.biscuitsec.biscuit.datalog.Rule converted_rule = _rule.convert(this.symbols);
 
-                Either<String,Rule> res = _rule.validate_variables();
+                Either<String,org.biscuitsec.biscuit.token.builder.Rule> res = _rule.validate_variables();
                 if(res.isLeft()){
                     throw new Error.FailedLogic(new LogicError.InvalidBlockRule(0, token.symbols.print_rule(converted_rule)));
                 }
@@ -369,7 +367,7 @@ public Long authorize(RunLimits limits) throws Error {
             }
 
             for (int i = 0; i < token.blocks.size(); i++) {
-                Block block = token.blocks.get(i);
+                org.biscuitsec.biscuit.token.Block block = token.blocks.get(i);
                 TrustedOrigins blockTrustedOrigins = TrustedOrigins.fromScopes(
                         block.scopes,
                         TrustedOrigins.defaultOrigins(),
@@ -382,16 +380,16 @@ public Long authorize(RunLimits limits) throws Error {
                     blockSymbols = new SymbolTable(block.symbols.symbols, token.symbols.publicKeys());
                 }
 
-                for (com.clevercloud.biscuit.datalog.Fact fact : block.facts) {
-                    com.clevercloud.biscuit.datalog.Fact converted_fact = Fact.convert_from(fact, blockSymbols).convert(this.symbols);
+                for (org.biscuitsec.biscuit.datalog.Fact fact : block.facts) {
+                    org.biscuitsec.biscuit.datalog.Fact converted_fact = org.biscuitsec.biscuit.token.builder.Fact.convert_from(fact, blockSymbols).convert(this.symbols);
                     world.add_fact(new Origin(i + 1), converted_fact);
                 }
 
-                for (com.clevercloud.biscuit.datalog.Rule rule : block.rules) {
-                    com.clevercloud.biscuit.token.builder.Rule _rule = Rule.convert_from(rule, blockSymbols);
-                    com.clevercloud.biscuit.datalog.Rule converted_rule = _rule.convert(this.symbols);
+                for (org.biscuitsec.biscuit.datalog.Rule rule : block.rules) {
+                    org.biscuitsec.biscuit.token.builder.Rule _rule = org.biscuitsec.biscuit.token.builder.Rule.convert_from(rule, blockSymbols);
+                    org.biscuitsec.biscuit.datalog.Rule converted_rule = _rule.convert(this.symbols);
 
-                    Either<String, Rule> res = _rule.validate_variables();
+                    Either<String, org.biscuitsec.biscuit.token.builder.Rule> res = _rule.validate_variables();
                     if (res.isLeft()) {
                         throw new Error.FailedLogic(new LogicError.InvalidBlockRule(0, this.symbols.print_rule(converted_rule)));
                     }
@@ -409,12 +407,12 @@ public Long authorize(RunLimits limits) throws Error {
         world.run(limits, symbols);
 
         for (int i = 0; i < this.checks.size(); i++) {
-            com.clevercloud.biscuit.datalog.Check c = this.checks.get(i).convert(symbols);
+            org.biscuitsec.biscuit.datalog.Check c = this.checks.get(i).convert(symbols);
             boolean successful = false;
 
             for (int j = 0; j < c.queries().size(); j++) {
                 boolean res = false;
-                com.clevercloud.biscuit.datalog.Rule query = c.queries().get(j);
+                org.biscuitsec.biscuit.datalog.Rule query = c.queries().get(j);
                 TrustedOrigins ruleTrustedOrigins = TrustedOrigins.fromScopes(
                         query.scopes(),
                         authorizerTrustedOrigins,
@@ -456,12 +454,12 @@ public Long authorize(RunLimits limits) throws Error {
             for (int j = 0; j < token.authority.checks.size(); j++) {
                 boolean successful = false;
 
-                Check c = Check.convert_from(token.authority.checks.get(j), token.symbols);
-                com.clevercloud.biscuit.datalog.Check check = c.convert(symbols);
+                org.biscuitsec.biscuit.token.builder.Check c = org.biscuitsec.biscuit.token.builder.Check.convert_from(token.authority.checks.get(j), token.symbols);
+                org.biscuitsec.biscuit.datalog.Check check = c.convert(symbols);
 
                 for (int k = 0; k < check.queries().size(); k++) {
                     boolean res = false;
-                    com.clevercloud.biscuit.datalog.Rule query = check.queries().get(k);
+                    org.biscuitsec.biscuit.datalog.Rule query = check.queries().get(k);
                     TrustedOrigins ruleTrustedOrigins = TrustedOrigins.fromScopes(
                             query.scopes(),
                             authorityTrustedOrigins,
@@ -498,7 +496,7 @@ public Long authorize(RunLimits limits) throws Error {
             Policy policy = this.policies.get(i);
 
             for (int j = 0; j < policy.queries.size(); j++) {
-                com.clevercloud.biscuit.datalog.Rule query = policy.queries.get(j).convert(symbols);
+                org.biscuitsec.biscuit.datalog.Rule query = policy.queries.get(j).convert(symbols);
                 TrustedOrigins policyTrustedOrigins = TrustedOrigins.fromScopes(
                         query.scopes(),
                         authorizerTrustedOrigins,
@@ -524,7 +522,7 @@ public Long authorize(RunLimits limits) throws Error {
 
         if (token != null) {
             for (int i = 0; i < token.blocks.size(); i++) {
-                Block b = token.blocks.get(i);
+                org.biscuitsec.biscuit.token.Block b = token.blocks.get(i);
                 TrustedOrigins blockTrustedOrigins = TrustedOrigins.fromScopes(
                         b.scopes,
                         TrustedOrigins.defaultOrigins(),
@@ -539,12 +537,12 @@ public Long authorize(RunLimits limits) throws Error {
                 for (int j = 0; j < b.checks.size(); j++) {
                     boolean successful = false;
 
-                    Check c = Check.convert_from(b.checks.get(j), blockSymbols);
-                    com.clevercloud.biscuit.datalog.Check check = c.convert(symbols);
+                    org.biscuitsec.biscuit.token.builder.Check c = org.biscuitsec.biscuit.token.builder.Check.convert_from(b.checks.get(j), blockSymbols);
+                    org.biscuitsec.biscuit.datalog.Check check = c.convert(symbols);
 
                     for (int k = 0; k < check.queries().size(); k++) {
                         boolean res = false;
-                        com.clevercloud.biscuit.datalog.Rule query = check.queries().get(k);
+                        org.biscuitsec.biscuit.datalog.Rule query = check.queries().get(k);
                         TrustedOrigins ruleTrustedOrigins = TrustedOrigins.fromScopes(
                                 query.scopes(),
                                 blockTrustedOrigins,
@@ -596,9 +594,9 @@ public Long authorize(RunLimits limits) throws Error {
     public String print_world() {
         //FIXME
         StringBuilder facts = new StringBuilder();
-        for(Map.Entry<Origin, HashSet<com.clevercloud.biscuit.datalog.Fact>> entry: this.world.facts().facts().entrySet()) {
+        for(Map.Entry<Origin, HashSet<org.biscuitsec.biscuit.datalog.Fact>> entry: this.world.facts().facts().entrySet()) {
             facts.append("\n\t\t"+entry.getKey()+":");
-            for(com.clevercloud.biscuit.datalog.Fact f: entry.getValue()) {
+            for(org.biscuitsec.biscuit.datalog.Fact f: entry.getValue()) {
                 facts.append("\n\t\t\t");
                 facts.append(this.symbols.print_fact(f));
             }
diff --git a/src/main/java/com/clevercloud/biscuit/token/Biscuit.java b/src/main/java/org/biscuitsec/biscuit/token/Biscuit.java
similarity index 89%
rename from src/main/java/com/clevercloud/biscuit/token/Biscuit.java
rename to src/main/java/org/biscuitsec/biscuit/token/Biscuit.java
index 9e9bd17a..372e0b4e 100644
--- a/src/main/java/com/clevercloud/biscuit/token/Biscuit.java
+++ b/src/main/java/org/biscuitsec/biscuit/token/Biscuit.java
@@ -1,12 +1,11 @@
-package com.clevercloud.biscuit.token;
-
-import com.clevercloud.biscuit.crypto.KeyDelegate;
-import com.clevercloud.biscuit.crypto.KeyPair;
-import com.clevercloud.biscuit.crypto.PublicKey;
-import com.clevercloud.biscuit.datalog.SymbolTable;
-import com.clevercloud.biscuit.error.Error;
-import com.clevercloud.biscuit.token.format.SerializedBiscuit;
-import com.clevercloud.biscuit.token.format.SignedBlock;
+package org.biscuitsec.biscuit.token;
+
+import org.biscuitsec.biscuit.crypto.KeyDelegate;
+import org.biscuitsec.biscuit.crypto.KeyPair;
+import org.biscuitsec.biscuit.crypto.PublicKey;
+import org.biscuitsec.biscuit.datalog.SymbolTable;
+import org.biscuitsec.biscuit.error.Error;
+import org.biscuitsec.biscuit.token.format.SerializedBiscuit;
 import io.vavr.Tuple3;
 import io.vavr.control.Either;
 import io.vavr.control.Option;
@@ -29,8 +28,8 @@ public class Biscuit extends UnverifiedBiscuit {
      * @param root root private key
      * @return
      */
-    public static com.clevercloud.biscuit.token.builder.Biscuit builder(final KeyPair root) {
-        return new com.clevercloud.biscuit.token.builder.Biscuit(new SecureRandom(), root, default_symbol_table());
+    public static org.biscuitsec.biscuit.token.builder.Biscuit builder(final KeyPair root) {
+        return new org.biscuitsec.biscuit.token.builder.Biscuit(new SecureRandom(), root, default_symbol_table());
     }
 
     /**
@@ -42,8 +41,8 @@ public static com.clevercloud.biscuit.token.builder.Biscuit builder(final KeyPai
      * @param root root private key
      * @return
      */
-    public static com.clevercloud.biscuit.token.builder.Biscuit builder(final SecureRandom rng, final KeyPair root) {
-        return new com.clevercloud.biscuit.token.builder.Biscuit(rng, root, default_symbol_table());
+    public static org.biscuitsec.biscuit.token.builder.Biscuit builder(final SecureRandom rng, final KeyPair root) {
+        return new org.biscuitsec.biscuit.token.builder.Biscuit(rng, root, default_symbol_table());
     }
 
     /**
@@ -54,8 +53,8 @@ public static com.clevercloud.biscuit.token.builder.Biscuit builder(final Secure
      * @param symbols symbol table
      * @return
      */
-    public static com.clevercloud.biscuit.token.builder.Biscuit builder(final SecureRandom rng, final KeyPair root, final Option<Integer> root_key_id, SymbolTable symbols) {
-        return new com.clevercloud.biscuit.token.builder.Biscuit(rng, root, root_key_id, symbols);
+    public static org.biscuitsec.biscuit.token.builder.Biscuit builder(final SecureRandom rng, final KeyPair root, final Option<Integer> root_key_id, SymbolTable symbols) {
+        return new org.biscuitsec.biscuit.token.builder.Biscuit(rng, root, root_key_id, symbols);
     }
 
     /**
@@ -66,8 +65,8 @@ public static com.clevercloud.biscuit.token.builder.Biscuit builder(final Secure
      * @param symbols symbol table
      * @return
      */
-    public static com.clevercloud.biscuit.token.builder.Biscuit builder(final SecureRandom rng, final KeyPair root, SymbolTable symbols) {
-        return new com.clevercloud.biscuit.token.builder.Biscuit(rng, root, symbols);
+    public static org.biscuitsec.biscuit.token.builder.Biscuit builder(final SecureRandom rng, final KeyPair root, SymbolTable symbols) {
+        return new org.biscuitsec.biscuit.token.builder.Biscuit(rng, root, symbols);
     }
 
 
@@ -203,7 +202,7 @@ static public Biscuit from_b64url(String data, KeyDelegate delegate) throws NoSu
      * @return
      */
     static public Biscuit from_bytes(byte[] data, PublicKey root) throws NoSuchAlgorithmException, SignatureException, InvalidKeyException, Error {
-        return Biscuit.from_bytes_with_symbols(data, root, default_symbol_table());
+        return from_bytes_with_symbols(data, root, default_symbol_table());
     }
 
     /**
@@ -220,7 +219,7 @@ static public Biscuit from_bytes(byte[] data, PublicKey root) throws NoSuchAlgor
      * @return
      */
     static public Biscuit from_bytes(byte[] data, KeyDelegate delegate) throws NoSuchAlgorithmException, SignatureException, InvalidKeyException, Error {
-        return Biscuit.from_bytes_with_symbols(data, delegate, default_symbol_table());
+        return from_bytes_with_symbols(data, delegate, default_symbol_table());
     }
 
     /**
@@ -323,7 +322,7 @@ public String serialize_b64url() throws Error.FormatError.SerializationError {
      * @param block new block (should be generated from a Block builder)
      * @return
      */
-    public Biscuit attenuate(com.clevercloud.biscuit.token.builder.Block block) throws Error {
+    public Biscuit attenuate(org.biscuitsec.biscuit.token.builder.Block block) throws Error {
         SecureRandom rng = new SecureRandom();
         KeyPair keypair = new KeyPair(rng);
         return attenuate(rng, keypair, block.build());
diff --git a/src/main/java/com/clevercloud/biscuit/token/Block.java b/src/main/java/org/biscuitsec/biscuit/token/Block.java
similarity index 97%
rename from src/main/java/com/clevercloud/biscuit/token/Block.java
rename to src/main/java/org/biscuitsec/biscuit/token/Block.java
index 4e90f9fc..382224a8 100644
--- a/src/main/java/com/clevercloud/biscuit/token/Block.java
+++ b/src/main/java/org/biscuitsec/biscuit/token/Block.java
@@ -1,10 +1,10 @@
-package com.clevercloud.biscuit.token;
+package org.biscuitsec.biscuit.token;
 
 import biscuit.format.schema.Schema;
-import com.clevercloud.biscuit.crypto.PublicKey;
-import com.clevercloud.biscuit.error.Error;
-import com.clevercloud.biscuit.datalog.*;
-import com.clevercloud.biscuit.token.format.SerializedBiscuit;
+import org.biscuitsec.biscuit.crypto.PublicKey;
+import org.biscuitsec.biscuit.error.Error;
+import org.biscuitsec.biscuit.datalog.*;
+import org.biscuitsec.biscuit.token.format.SerializedBiscuit;
 import com.google.protobuf.InvalidProtocolBufferException;
 import io.vavr.control.Either;
 import io.vavr.control.Option;
diff --git a/src/main/java/com/clevercloud/biscuit/token/Policy.java b/src/main/java/org/biscuitsec/biscuit/token/Policy.java
similarity index 83%
rename from src/main/java/com/clevercloud/biscuit/token/Policy.java
rename to src/main/java/org/biscuitsec/biscuit/token/Policy.java
index 0c8e890d..bf244b9f 100644
--- a/src/main/java/com/clevercloud/biscuit/token/Policy.java
+++ b/src/main/java/org/biscuitsec/biscuit/token/Policy.java
@@ -1,7 +1,6 @@
-package com.clevercloud.biscuit.token;
+package org.biscuitsec.biscuit.token;
 
-import com.clevercloud.biscuit.datalog.SymbolTable;
-import com.clevercloud.biscuit.token.builder.Rule;
+import org.biscuitsec.biscuit.token.builder.Rule;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/src/main/java/com/clevercloud/biscuit/token/RevocationIdentifier.java b/src/main/java/org/biscuitsec/biscuit/token/RevocationIdentifier.java
similarity index 95%
rename from src/main/java/com/clevercloud/biscuit/token/RevocationIdentifier.java
rename to src/main/java/org/biscuitsec/biscuit/token/RevocationIdentifier.java
index d8ef1808..446a751b 100644
--- a/src/main/java/com/clevercloud/biscuit/token/RevocationIdentifier.java
+++ b/src/main/java/org/biscuitsec/biscuit/token/RevocationIdentifier.java
@@ -1,4 +1,4 @@
-package com.clevercloud.biscuit.token;
+package org.biscuitsec.biscuit.token;
 
 import java.util.Base64;
 
diff --git a/src/main/java/com/clevercloud/biscuit/token/UnverifiedBiscuit.java b/src/main/java/org/biscuitsec/biscuit/token/UnverifiedBiscuit.java
similarity index 91%
rename from src/main/java/com/clevercloud/biscuit/token/UnverifiedBiscuit.java
rename to src/main/java/org/biscuitsec/biscuit/token/UnverifiedBiscuit.java
index c018d96e..302fd6d4 100644
--- a/src/main/java/com/clevercloud/biscuit/token/UnverifiedBiscuit.java
+++ b/src/main/java/org/biscuitsec/biscuit/token/UnverifiedBiscuit.java
@@ -1,14 +1,15 @@
-package com.clevercloud.biscuit.token;
-
-import com.clevercloud.biscuit.crypto.KeyDelegate;
-import com.clevercloud.biscuit.crypto.KeyPair;
-import com.clevercloud.biscuit.crypto.PublicKey;
-import com.clevercloud.biscuit.datalog.*;
-import com.clevercloud.biscuit.error.Error;
-import com.clevercloud.biscuit.token.format.SerializedBiscuit;
+package org.biscuitsec.biscuit.token;
+
+import org.biscuitsec.biscuit.crypto.KeyDelegate;
+import org.biscuitsec.biscuit.crypto.KeyPair;
+import org.biscuitsec.biscuit.crypto.PublicKey;
+import org.biscuitsec.biscuit.error.Error;
+import org.biscuitsec.biscuit.token.format.SerializedBiscuit;
 import io.vavr.Tuple3;
 import io.vavr.control.Either;
 import io.vavr.control.Option;
+import org.biscuitsec.biscuit.datalog.Check;
+import org.biscuitsec.biscuit.datalog.SymbolTable;
 
 import java.security.InvalidKeyException;
 import java.security.NoSuchAlgorithmException;
@@ -127,8 +128,8 @@ public String serialize_b64url() throws Error.FormatError.SerializationError {
      *
      * @return
      */
-    public com.clevercloud.biscuit.token.builder.Block create_block() {
-        return new com.clevercloud.biscuit.token.builder.Block(1 + this.blocks.size(), new SymbolTable(this.symbols));
+    public org.biscuitsec.biscuit.token.builder.Block create_block() {
+        return new org.biscuitsec.biscuit.token.builder.Block(1 + this.blocks.size(), new SymbolTable(this.symbols));
     }
 
     /**
@@ -137,7 +138,7 @@ public com.clevercloud.biscuit.token.builder.Block create_block() {
      * @param block new block (should be generated from a Block builder)
      * @return
      */
-    public UnverifiedBiscuit attenuate(com.clevercloud.biscuit.token.builder.Block block) throws NoSuchAlgorithmException, SignatureException, InvalidKeyException, Error {
+    public UnverifiedBiscuit attenuate(org.biscuitsec.biscuit.token.builder.Block block) throws NoSuchAlgorithmException, SignatureException, InvalidKeyException, Error {
         SecureRandom rng = new SecureRandom();
         KeyPair keypair = new KeyPair(rng);
         return attenuate(rng, keypair, block.build());
@@ -192,8 +193,8 @@ public List<RevocationIdentifier> revocation_identifiers() {
                 .collect(Collectors.toList());
     }
 
-    public List<List<com.clevercloud.biscuit.datalog.Check>> checks() {
-        ArrayList<List<com.clevercloud.biscuit.datalog.Check>> l = new ArrayList<>();
+    public List<List<Check>> checks() {
+        ArrayList<List<Check>> l = new ArrayList<>();
         l.add(new ArrayList<>(this.authority.checks));
 
         for (Block b : this.blocks) {
diff --git a/src/main/java/com/clevercloud/biscuit/token/builder/Biscuit.java b/src/main/java/org/biscuitsec/biscuit/token/builder/Biscuit.java
similarity index 61%
rename from src/main/java/com/clevercloud/biscuit/token/builder/Biscuit.java
rename to src/main/java/org/biscuitsec/biscuit/token/builder/Biscuit.java
index ac6e3ad2..d9a55f1b 100644
--- a/src/main/java/com/clevercloud/biscuit/token/builder/Biscuit.java
+++ b/src/main/java/org/biscuitsec/biscuit/token/builder/Biscuit.java
@@ -1,26 +1,24 @@
-package com.clevercloud.biscuit.token.builder;
-
-import com.clevercloud.biscuit.crypto.KeyPair;
-import com.clevercloud.biscuit.crypto.PublicKey;
-import com.clevercloud.biscuit.datalog.*;
-import com.clevercloud.biscuit.datalog.Check;
-import com.clevercloud.biscuit.datalog.Fact;
-import com.clevercloud.biscuit.datalog.Rule;
-import com.clevercloud.biscuit.datalog.Scope;
-import com.clevercloud.biscuit.error.Error;
-import com.clevercloud.biscuit.token.Block;
+package org.biscuitsec.biscuit.token.builder;
+
+import org.biscuitsec.biscuit.crypto.KeyPair;
+import org.biscuitsec.biscuit.crypto.PublicKey;
+import org.biscuitsec.biscuit.datalog.*;
+import org.biscuitsec.biscuit.datalog.Check;
+import org.biscuitsec.biscuit.datalog.Fact;
+import org.biscuitsec.biscuit.datalog.Rule;
+import org.biscuitsec.biscuit.error.Error;
+import org.biscuitsec.biscuit.token.Block;
 import io.vavr.Tuple2;
 import io.vavr.control.Either;
 import io.vavr.control.Option;
+import org.biscuitsec.biscuit.datalog.Scope;
+import org.biscuitsec.biscuit.token.builder.parser.Parser;
 
 import java.security.SecureRandom;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
-import static com.clevercloud.biscuit.token.Biscuit.make;
-import static com.clevercloud.biscuit.token.builder.Utils.*;
-
 public class Biscuit {
     SecureRandom rng;
     KeyPair root;
@@ -61,59 +59,57 @@ public Biscuit(final SecureRandom rng, final KeyPair root, Option<Integer> root_
         this.root_key_id = root_key_id;
     }
 
-    public Biscuit add_authority_fact(com.clevercloud.biscuit.token.builder.Fact f) throws Error.Language {
+    public Biscuit add_authority_fact(org.biscuitsec.biscuit.token.builder.Fact f) throws Error.Language {
         f.validate();
         this.facts.add(f.convert(this.symbols));
         return this;
     }
 
     public Biscuit add_authority_fact(String s) throws Error.Parser, Error.Language {
-        Either<com.clevercloud.biscuit.token.builder.parser.Error, Tuple2<String, com.clevercloud.biscuit.token.builder.Fact>> res =
-                com.clevercloud.biscuit.token.builder.parser.Parser.fact(s);
+        Either<org.biscuitsec.biscuit.token.builder.parser.Error, Tuple2<String, org.biscuitsec.biscuit.token.builder.Fact>> res =
+                Parser.fact(s);
 
         if (res.isLeft()) {
             throw new Error.Parser(res.getLeft());
         }
 
-        Tuple2<String, com.clevercloud.biscuit.token.builder.Fact> t = res.get();
+        Tuple2<String, org.biscuitsec.biscuit.token.builder.Fact> t = res.get();
 
         return add_authority_fact(t._2);
     }
 
-    public Biscuit add_authority_rule(com.clevercloud.biscuit.token.builder.Rule rule) {
+    public Biscuit add_authority_rule(org.biscuitsec.biscuit.token.builder.Rule rule) {
         this.rules.add(rule.convert(this.symbols));
         return this;
     }
 
     public Biscuit add_authority_rule(String s) throws Error.Parser {
-        Either<com.clevercloud.biscuit.token.builder.parser.Error, Tuple2<String, com.clevercloud.biscuit.token.builder.Rule>> res =
-                com.clevercloud.biscuit.token.builder.parser.Parser.rule(s);
+        Either<org.biscuitsec.biscuit.token.builder.parser.Error, Tuple2<String, org.biscuitsec.biscuit.token.builder.Rule>> res =
+                Parser.rule(s);
 
         if (res.isLeft()) {
             throw new Error.Parser(res.getLeft());
         }
 
-        Tuple2<String, com.clevercloud.biscuit.token.builder.Rule> t = res.get();
-
-
+        Tuple2<String, org.biscuitsec.biscuit.token.builder.Rule> t = res.get();
 
         return add_authority_rule(t._2);
     }
 
-    public Biscuit add_authority_check(com.clevercloud.biscuit.token.builder.Check c) {
+    public Biscuit add_authority_check(org.biscuitsec.biscuit.token.builder.Check c) {
         this.checks.add(c.convert(this.symbols));
         return this;
     }
 
     public Biscuit add_authority_check(String s) throws Error.Parser {
-        Either<com.clevercloud.biscuit.token.builder.parser.Error, Tuple2<String, com.clevercloud.biscuit.token.builder.Check>> res =
-                com.clevercloud.biscuit.token.builder.parser.Parser.check(s);
+        Either<org.biscuitsec.biscuit.token.builder.parser.Error, Tuple2<String, org.biscuitsec.biscuit.token.builder.Check>> res =
+                Parser.check(s);
 
         if (res.isLeft()) {
             throw new Error.Parser(res.getLeft());
         }
 
-        Tuple2<String, com.clevercloud.biscuit.token.builder.Check> t = res.get();
+        Tuple2<String, org.biscuitsec.biscuit.token.builder.Check> t = res.get();
 
         return add_authority_check(t._2);
     }
@@ -123,7 +119,7 @@ public Biscuit set_context(String context) {
         return this;
     }
 
-    public Biscuit add_scope(com.clevercloud.biscuit.token.builder.Scope scope) {
+    public Biscuit add_scope(org.biscuitsec.biscuit.token.builder.Scope scope) {
         this.scopes.add(scope.convert(this.symbols));
         return this;
     }
@@ -132,7 +128,7 @@ public void set_root_key_id(Integer i) {
         this.root_key_id = Option.some(i);
     }
 
-    public com.clevercloud.biscuit.token.Biscuit build() throws Error {
+    public org.biscuitsec.biscuit.token.Biscuit build() throws Error {
         SymbolTable base_symbols = new SymbolTable();
         SymbolTable symbols = new SymbolTable();
 
@@ -151,17 +147,17 @@ public com.clevercloud.biscuit.token.Biscuit build() throws Error {
 
         SchemaVersion schemaVersion = new SchemaVersion(this.facts, this.rules, this.checks, this.scopes);
 
-        Block authority_block = new com.clevercloud.biscuit.token.Block(symbols, context, this.facts, this.rules,
+        Block authority_block = new Block(symbols, context, this.facts, this.rules,
                 this.checks, scopes, publicKeys, Option.none(), schemaVersion.version());
 
         if (this.root_key_id.isDefined()) {
-            return make(this.rng, this.root, this.root_key_id.get(), base_symbols, authority_block);
+            return org.biscuitsec.biscuit.token.Biscuit.make(this.rng, this.root, this.root_key_id.get(), base_symbols, authority_block);
         } else {
-            return make(this.rng, this.root, base_symbols, authority_block);
+            return org.biscuitsec.biscuit.token.Biscuit.make(this.rng, this.root, base_symbols, authority_block);
         }
     }
 
     public Biscuit add_right(String resource, String right) throws Error.Language {
-        return this.add_authority_fact(fact("right", Arrays.asList(string(resource), s(right))));
+        return this.add_authority_fact(Utils.fact("right", Arrays.asList(Utils.string(resource), Utils.s(right))));
     }
 }
diff --git a/src/main/java/com/clevercloud/biscuit/token/builder/Block.java b/src/main/java/org/biscuitsec/biscuit/token/builder/Block.java
similarity index 61%
rename from src/main/java/com/clevercloud/biscuit/token/builder/Block.java
rename to src/main/java/org/biscuitsec/biscuit/token/builder/Block.java
index 5d639efb..302e6930 100644
--- a/src/main/java/com/clevercloud/biscuit/token/builder/Block.java
+++ b/src/main/java/org/biscuitsec/biscuit/token/builder/Block.java
@@ -1,19 +1,20 @@
-package com.clevercloud.biscuit.token.builder;
+package org.biscuitsec.biscuit.token.builder;
 
 
-import com.clevercloud.biscuit.crypto.PublicKey;
-import com.clevercloud.biscuit.datalog.*;
-import com.clevercloud.biscuit.datalog.Check;
-import com.clevercloud.biscuit.datalog.Fact;
-import com.clevercloud.biscuit.datalog.Scope;
-import com.clevercloud.biscuit.datalog.Rule;
-import com.clevercloud.biscuit.error.Error;
+import org.biscuitsec.biscuit.crypto.PublicKey;
+import org.biscuitsec.biscuit.datalog.*;
+import org.biscuitsec.biscuit.datalog.Check;
+import org.biscuitsec.biscuit.datalog.Fact;
+import org.biscuitsec.biscuit.datalog.Rule;
+import org.biscuitsec.biscuit.error.Error;
 import io.vavr.Tuple2;
 import io.vavr.control.Either;
 import io.vavr.control.Option;
+import org.biscuitsec.biscuit.datalog.Scope;
+import org.biscuitsec.biscuit.token.builder.parser.Parser;
 
-import static com.clevercloud.biscuit.datalog.Check.Kind.One;
-import static com.clevercloud.biscuit.token.builder.Utils.*;
+import static org.biscuitsec.biscuit.datalog.Check.Kind.One;
+import static org.biscuitsec.biscuit.token.builder.Utils.*;
 
 
 import java.util.ArrayList;
@@ -44,61 +45,61 @@ public Block(long index, SymbolTable base_symbols) {
         this.scopes = new ArrayList<>();
     }
 
-    public Block add_fact(com.clevercloud.biscuit.token.builder.Fact f) {
+    public Block add_fact(org.biscuitsec.biscuit.token.builder.Fact f) {
         this.facts.add(f.convert(this.symbols));
         return this;
     }
 
     public Block add_fact(String s) throws Error.Parser {
-        Either<com.clevercloud.biscuit.token.builder.parser.Error, Tuple2<String, com.clevercloud.biscuit.token.builder.Fact>> res =
-                com.clevercloud.biscuit.token.builder.parser.Parser.fact(s);
+        Either<org.biscuitsec.biscuit.token.builder.parser.Error, Tuple2<String, org.biscuitsec.biscuit.token.builder.Fact>> res =
+                Parser.fact(s);
 
         if (res.isLeft()) {
             throw new Error.Parser(res.getLeft());
         }
 
-        Tuple2<String, com.clevercloud.biscuit.token.builder.Fact> t = res.get();
+        Tuple2<String, org.biscuitsec.biscuit.token.builder.Fact> t = res.get();
 
         return add_fact(t._2);
     }
 
-    public Block add_rule(com.clevercloud.biscuit.token.builder.Rule rule) {
+    public Block add_rule(org.biscuitsec.biscuit.token.builder.Rule rule) {
         this.rules.add(rule.convert(this.symbols));
         return this;
     }
 
     public Block add_rule(String s) throws Error.Parser {
-        Either<com.clevercloud.biscuit.token.builder.parser.Error, Tuple2<String, com.clevercloud.biscuit.token.builder.Rule>> res =
-                com.clevercloud.biscuit.token.builder.parser.Parser.rule(s);
+        Either<org.biscuitsec.biscuit.token.builder.parser.Error, Tuple2<String, org.biscuitsec.biscuit.token.builder.Rule>> res =
+                Parser.rule(s);
 
         if (res.isLeft()) {
             throw new Error.Parser(res.getLeft());
         }
 
-        Tuple2<String, com.clevercloud.biscuit.token.builder.Rule> t = res.get();
+        Tuple2<String, org.biscuitsec.biscuit.token.builder.Rule> t = res.get();
 
         return add_rule(t._2);
     }
 
-    public Block add_check(com.clevercloud.biscuit.token.builder.Check check) {
+    public Block add_check(org.biscuitsec.biscuit.token.builder.Check check) {
         this.checks.add(check.convert(this.symbols));
         return this;
     }
 
     public Block add_check(String s) throws Error.Parser {
-        Either<com.clevercloud.biscuit.token.builder.parser.Error, Tuple2<String, com.clevercloud.biscuit.token.builder.Check>> res =
-                com.clevercloud.biscuit.token.builder.parser.Parser.check(s);
+        Either<org.biscuitsec.biscuit.token.builder.parser.Error, Tuple2<String, org.biscuitsec.biscuit.token.builder.Check>> res =
+                Parser.check(s);
 
         if (res.isLeft()) {
             throw new Error.Parser(res.getLeft());
         }
 
-        Tuple2<String, com.clevercloud.biscuit.token.builder.Check> t = res.get();
+        Tuple2<String, org.biscuitsec.biscuit.token.builder.Check> t = res.get();
 
         return add_check(t._2);
     }
 
-    public Block add_scope(com.clevercloud.biscuit.token.builder.Scope scope) {
+    public Block add_scope(org.biscuitsec.biscuit.token.builder.Scope scope) {
         this.scopes.add(scope.convert(this.symbols));
         return this;
     }
@@ -108,7 +109,7 @@ public Block set_context(String context) {
         return this;
     }
 
-    public com.clevercloud.biscuit.token.Block build() {
+    public org.biscuitsec.biscuit.token.Block build() {
         SymbolTable symbols = new SymbolTable();
 
         for (int i = this.symbol_start; i < this.symbols.symbols.size(); i++) {
@@ -122,12 +123,12 @@ public com.clevercloud.biscuit.token.Block build() {
 
         SchemaVersion schemaVersion = new SchemaVersion(this.facts, this.rules, this.checks, this.scopes);
 
-        return new com.clevercloud.biscuit.token.Block(symbols, this.context, this.facts, this.rules, this.checks,
+        return new org.biscuitsec.biscuit.token.Block(symbols, this.context, this.facts, this.rules, this.checks,
                 this.scopes, publicKeys, Option.none(), schemaVersion.version());
     }
 
     public Block check_right(String right) {
-        ArrayList<com.clevercloud.biscuit.token.builder.Rule> queries = new ArrayList<>();
+        ArrayList<org.biscuitsec.biscuit.token.builder.Rule> queries = new ArrayList<>();
         queries.add(rule(
                 "check_right",
                 Arrays.asList(s(right)),
@@ -137,11 +138,11 @@ public Block check_right(String right) {
                         pred("right", Arrays.asList(var("resource"), s(right)))
                 )
         ));
-        return this.add_check(new com.clevercloud.biscuit.token.builder.Check(One, queries));
+        return this.add_check(new org.biscuitsec.biscuit.token.builder.Check(One, queries));
     }
 
     public Block resource_prefix(String prefix) {
-        ArrayList<com.clevercloud.biscuit.token.builder.Rule> queries = new ArrayList<>();
+        ArrayList<org.biscuitsec.biscuit.token.builder.Rule> queries = new ArrayList<>();
 
         queries.add(constrained_rule(
                 "prefix",
@@ -150,11 +151,11 @@ public Block resource_prefix(String prefix) {
                 Arrays.asList(new Expression.Binary(Expression.Op.Prefix, new Expression.Value(var("resource")),
                         new Expression.Value(string(prefix))))
         ));
-        return this.add_check(new com.clevercloud.biscuit.token.builder.Check(One, queries));
+        return this.add_check(new org.biscuitsec.biscuit.token.builder.Check(One, queries));
     }
 
     public Block resource_suffix(String suffix) {
-        ArrayList<com.clevercloud.biscuit.token.builder.Rule> queries = new ArrayList<>();
+        ArrayList<org.biscuitsec.biscuit.token.builder.Rule> queries = new ArrayList<>();
 
         queries.add(constrained_rule(
                 "suffix",
@@ -163,11 +164,11 @@ public Block resource_suffix(String suffix) {
                 Arrays.asList(new Expression.Binary(Expression.Op.Suffix, new Expression.Value(var("resource")),
                         new Expression.Value(string(suffix))))
         ));
-        return this.add_check(new com.clevercloud.biscuit.token.builder.Check(One, queries));
+        return this.add_check(new org.biscuitsec.biscuit.token.builder.Check(One, queries));
     }
 
     public Block expiration_date(Date d) {
-        ArrayList<com.clevercloud.biscuit.token.builder.Rule> queries = new ArrayList<>();
+        ArrayList<org.biscuitsec.biscuit.token.builder.Rule> queries = new ArrayList<>();
 
         queries.add(constrained_rule(
                 "expiration",
@@ -176,6 +177,6 @@ public Block expiration_date(Date d) {
                 Arrays.asList(new Expression.Binary(Expression.Op.LessOrEqual, new Expression.Value(var("date")),
                         new Expression.Value(date(d))))
         ));
-        return this.add_check(new com.clevercloud.biscuit.token.builder.Check(One, queries));
+        return this.add_check(new org.biscuitsec.biscuit.token.builder.Check(One, queries));
     }
 }
diff --git a/src/main/java/com/clevercloud/biscuit/token/builder/Check.java b/src/main/java/org/biscuitsec/biscuit/token/builder/Check.java
similarity index 71%
rename from src/main/java/com/clevercloud/biscuit/token/builder/Check.java
rename to src/main/java/org/biscuitsec/biscuit/token/builder/Check.java
index a31be3f8..72d2f6b7 100644
--- a/src/main/java/com/clevercloud/biscuit/token/builder/Check.java
+++ b/src/main/java/org/biscuitsec/biscuit/token/builder/Check.java
@@ -1,23 +1,23 @@
-package com.clevercloud.biscuit.token.builder;
+package org.biscuitsec.biscuit.token.builder;
 
-import com.clevercloud.biscuit.datalog.SymbolTable;
+import org.biscuitsec.biscuit.datalog.SymbolTable;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
-import static com.clevercloud.biscuit.datalog.Check.Kind.One;
+import static org.biscuitsec.biscuit.datalog.Check.Kind.One;
 
 public class Check {
-    private final com.clevercloud.biscuit.datalog.Check.Kind kind;
+    private final org.biscuitsec.biscuit.datalog.Check.Kind kind;
     List<Rule> queries;
 
-    public Check(com.clevercloud.biscuit.datalog.Check.Kind kind, List<Rule> queries) {
+    public Check(org.biscuitsec.biscuit.datalog.Check.Kind kind, List<Rule> queries) {
         this.kind = kind;
         this.queries = queries;
     }
 
-    public Check(com.clevercloud.biscuit.datalog.Check.Kind kind, Rule query) {
+    public Check(org.biscuitsec.biscuit.datalog.Check.Kind kind, Rule query) {
         this.kind = kind;
 
         ArrayList<Rule> r = new ArrayList<>();
@@ -25,19 +25,19 @@ public Check(com.clevercloud.biscuit.datalog.Check.Kind kind, Rule query) {
         queries = r;
     }
 
-    public com.clevercloud.biscuit.datalog.Check convert(SymbolTable symbols) {
-        ArrayList<com.clevercloud.biscuit.datalog.Rule> queries = new ArrayList<>();
+    public org.biscuitsec.biscuit.datalog.Check convert(SymbolTable symbols) {
+        ArrayList<org.biscuitsec.biscuit.datalog.Rule> queries = new ArrayList<>();
 
         for(Rule q: this.queries) {
             queries.add(q.convert(symbols));
         }
-        return new com.clevercloud.biscuit.datalog.Check(this.kind, queries);
+        return new org.biscuitsec.biscuit.datalog.Check(this.kind, queries);
     }
 
-    public static Check convert_from(com.clevercloud.biscuit.datalog.Check r, SymbolTable symbols) {
+    public static Check convert_from(org.biscuitsec.biscuit.datalog.Check r, SymbolTable symbols) {
         ArrayList<Rule> queries = new ArrayList<>();
 
-        for(com.clevercloud.biscuit.datalog.Rule q: r.queries()) {
+        for(org.biscuitsec.biscuit.datalog.Rule q: r.queries()) {
             queries.add(Rule.convert_from(q, symbols));
         }
 
diff --git a/src/main/java/com/clevercloud/biscuit/token/builder/Expression.java b/src/main/java/org/biscuitsec/biscuit/token/builder/Expression.java
similarity index 63%
rename from src/main/java/com/clevercloud/biscuit/token/builder/Expression.java
rename to src/main/java/org/biscuitsec/biscuit/token/builder/Expression.java
index 18137c2d..32a234fc 100644
--- a/src/main/java/com/clevercloud/biscuit/token/builder/Expression.java
+++ b/src/main/java/org/biscuitsec/biscuit/token/builder/Expression.java
@@ -1,27 +1,26 @@
-package com.clevercloud.biscuit.token.builder;
+package org.biscuitsec.biscuit.token.builder;
 
-import com.clevercloud.biscuit.datalog.SymbolTable;
-import com.clevercloud.biscuit.datalog.expressions.Op;
+import org.biscuitsec.biscuit.datalog.SymbolTable;
 
 import java.util.*;
 
 public abstract class Expression {
-    public com.clevercloud.biscuit.datalog.expressions.Expression convert(SymbolTable symbols) {
-        ArrayList<com.clevercloud.biscuit.datalog.expressions.Op> ops = new ArrayList<>();
+    public org.biscuitsec.biscuit.datalog.expressions.Expression convert(SymbolTable symbols) {
+        ArrayList<org.biscuitsec.biscuit.datalog.expressions.Op> ops = new ArrayList<>();
         this.toOpcodes(symbols, ops);
 
-        return new com.clevercloud.biscuit.datalog.expressions.Expression(ops);
+        return new org.biscuitsec.biscuit.datalog.expressions.Expression(ops);
     }
 
-    public static Expression convert_from(com.clevercloud.biscuit.datalog.expressions.Expression e, SymbolTable symbols) {
+    public static Expression convert_from(org.biscuitsec.biscuit.datalog.expressions.Expression e, SymbolTable symbols) {
         ArrayList<Op> ops = new ArrayList<>();
         Deque<Expression> stack = new ArrayDeque<Expression>(16);
-        for(com.clevercloud.biscuit.datalog.expressions.Op op: e.getOps()){
-            if(op instanceof com.clevercloud.biscuit.datalog.expressions.Op.Value) {
-                com.clevercloud.biscuit.datalog.expressions.Op.Value v = (com.clevercloud.biscuit.datalog.expressions.Op.Value) op;
+        for(org.biscuitsec.biscuit.datalog.expressions.Op op: e.getOps()){
+            if(op instanceof org.biscuitsec.biscuit.datalog.expressions.Op.Value) {
+                org.biscuitsec.biscuit.datalog.expressions.Op.Value v = (org.biscuitsec.biscuit.datalog.expressions.Op.Value) op;
                 stack.push(new Expression.Value(Term.convert_from(v.getValue(), symbols)));
-            } else if(op instanceof com.clevercloud.biscuit.datalog.expressions.Op.Unary) {
-                com.clevercloud.biscuit.datalog.expressions.Op.Unary v = (com.clevercloud.biscuit.datalog.expressions.Op.Unary) op;
+            } else if(op instanceof org.biscuitsec.biscuit.datalog.expressions.Op.Unary) {
+                org.biscuitsec.biscuit.datalog.expressions.Op.Unary v = (org.biscuitsec.biscuit.datalog.expressions.Op.Unary) op;
                 Expression e1 = stack.pop();
 
                 switch (v.getOp()) {
@@ -37,8 +36,8 @@ public static Expression convert_from(com.clevercloud.biscuit.datalog.expression
                     default:
                         return null;
                 }
-            } else if (op instanceof com.clevercloud.biscuit.datalog.expressions.Op.Binary) {
-                com.clevercloud.biscuit.datalog.expressions.Op.Binary v = (com.clevercloud.biscuit.datalog.expressions.Op.Binary) op;
+            } else if (op instanceof org.biscuitsec.biscuit.datalog.expressions.Op.Binary) {
+                org.biscuitsec.biscuit.datalog.expressions.Op.Binary v = (org.biscuitsec.biscuit.datalog.expressions.Op.Binary) op;
                 Expression e2 = stack.pop();
                 Expression e1 = stack.pop();
 
@@ -115,7 +114,7 @@ public static Expression convert_from(com.clevercloud.biscuit.datalog.expression
         return stack.pop();
     }
 
-    public abstract void toOpcodes(SymbolTable symbols, List<com.clevercloud.biscuit.datalog.expressions.Op> ops);
+    public abstract void toOpcodes(SymbolTable symbols, List<org.biscuitsec.biscuit.datalog.expressions.Op> ops);
     public abstract void gatherVariables(Set<String> variables);
 
     public enum Op {
@@ -152,8 +151,8 @@ public Value(Term value) {
             this.value = value;
         }
 
-        public void toOpcodes(SymbolTable symbols, List<com.clevercloud.biscuit.datalog.expressions.Op> ops) {
-            ops.add(new com.clevercloud.biscuit.datalog.expressions.Op.Value(this.value.convert(symbols)));
+        public void toOpcodes(SymbolTable symbols, List<org.biscuitsec.biscuit.datalog.expressions.Op> ops) {
+            ops.add(new org.biscuitsec.biscuit.datalog.expressions.Op.Value(this.value.convert(symbols)));
         }
 
         public  void gatherVariables(Set<String> variables) {
@@ -194,18 +193,18 @@ public Unary(Op op, Expression arg1) {
             this.arg1 = arg1;
         }
 
-        public void toOpcodes(SymbolTable symbols, List<com.clevercloud.biscuit.datalog.expressions.Op> ops) {
+        public void toOpcodes(SymbolTable symbols, List<org.biscuitsec.biscuit.datalog.expressions.Op> ops) {
             this.arg1.toOpcodes(symbols, ops);
 
             switch (this.op) {
                 case Negate:
-                    ops.add(new com.clevercloud.biscuit.datalog.expressions.Op.Unary(com.clevercloud.biscuit.datalog.expressions.Op.UnaryOp.Negate));
+                    ops.add(new org.biscuitsec.biscuit.datalog.expressions.Op.Unary(org.biscuitsec.biscuit.datalog.expressions.Op.UnaryOp.Negate));
                     break;
                 case Parens:
-                    ops.add(new com.clevercloud.biscuit.datalog.expressions.Op.Unary(com.clevercloud.biscuit.datalog.expressions.Op.UnaryOp.Parens));
+                    ops.add(new org.biscuitsec.biscuit.datalog.expressions.Op.Unary(org.biscuitsec.biscuit.datalog.expressions.Op.UnaryOp.Parens));
                     break;
                 case Length:
-                    ops.add(new com.clevercloud.biscuit.datalog.expressions.Op.Unary(com.clevercloud.biscuit.datalog.expressions.Op.UnaryOp.Length));
+                    ops.add(new org.biscuitsec.biscuit.datalog.expressions.Op.Unary(org.biscuitsec.biscuit.datalog.expressions.Op.UnaryOp.Length));
                     break;
             }
         }
@@ -252,73 +251,73 @@ public Binary(Op op, Expression arg1, Expression arg2) {
             this.arg2 = arg2;
         }
 
-        public void toOpcodes(SymbolTable symbols, List<com.clevercloud.biscuit.datalog.expressions.Op> ops) {
+        public void toOpcodes(SymbolTable symbols, List<org.biscuitsec.biscuit.datalog.expressions.Op> ops) {
             this.arg1.toOpcodes(symbols, ops);
             this.arg2.toOpcodes(symbols, ops);
 
             switch (this.op) {
                 case LessThan:
-                    ops.add(new com.clevercloud.biscuit.datalog.expressions.Op.Binary(com.clevercloud.biscuit.datalog.expressions.Op.BinaryOp.LessThan));
+                    ops.add(new org.biscuitsec.biscuit.datalog.expressions.Op.Binary(org.biscuitsec.biscuit.datalog.expressions.Op.BinaryOp.LessThan));
                     break;
                 case GreaterThan:
-                    ops.add(new com.clevercloud.biscuit.datalog.expressions.Op.Binary(com.clevercloud.biscuit.datalog.expressions.Op.BinaryOp.GreaterThan));
+                    ops.add(new org.biscuitsec.biscuit.datalog.expressions.Op.Binary(org.biscuitsec.biscuit.datalog.expressions.Op.BinaryOp.GreaterThan));
                     break;
                 case LessOrEqual:
-                    ops.add(new com.clevercloud.biscuit.datalog.expressions.Op.Binary(com.clevercloud.biscuit.datalog.expressions.Op.BinaryOp.LessOrEqual));
+                    ops.add(new org.biscuitsec.biscuit.datalog.expressions.Op.Binary(org.biscuitsec.biscuit.datalog.expressions.Op.BinaryOp.LessOrEqual));
                     break;
                 case GreaterOrEqual:
-                    ops.add(new com.clevercloud.biscuit.datalog.expressions.Op.Binary(com.clevercloud.biscuit.datalog.expressions.Op.BinaryOp.GreaterOrEqual));
+                    ops.add(new org.biscuitsec.biscuit.datalog.expressions.Op.Binary(org.biscuitsec.biscuit.datalog.expressions.Op.BinaryOp.GreaterOrEqual));
                     break;
                 case Equal:
-                    ops.add(new com.clevercloud.biscuit.datalog.expressions.Op.Binary(com.clevercloud.biscuit.datalog.expressions.Op.BinaryOp.Equal));
+                    ops.add(new org.biscuitsec.biscuit.datalog.expressions.Op.Binary(org.biscuitsec.biscuit.datalog.expressions.Op.BinaryOp.Equal));
                     break;
                 case NotEqual:
-                    ops.add(new com.clevercloud.biscuit.datalog.expressions.Op.Binary(com.clevercloud.biscuit.datalog.expressions.Op.BinaryOp.NotEqual));
+                    ops.add(new org.biscuitsec.biscuit.datalog.expressions.Op.Binary(org.biscuitsec.biscuit.datalog.expressions.Op.BinaryOp.NotEqual));
                     break;
                 case Contains:
-                    ops.add(new com.clevercloud.biscuit.datalog.expressions.Op.Binary(com.clevercloud.biscuit.datalog.expressions.Op.BinaryOp.Contains));
+                    ops.add(new org.biscuitsec.biscuit.datalog.expressions.Op.Binary(org.biscuitsec.biscuit.datalog.expressions.Op.BinaryOp.Contains));
                     break;
                 case Prefix:
-                    ops.add(new com.clevercloud.biscuit.datalog.expressions.Op.Binary(com.clevercloud.biscuit.datalog.expressions.Op.BinaryOp.Prefix));
+                    ops.add(new org.biscuitsec.biscuit.datalog.expressions.Op.Binary(org.biscuitsec.biscuit.datalog.expressions.Op.BinaryOp.Prefix));
                     break;
                 case Suffix:
-                    ops.add(new com.clevercloud.biscuit.datalog.expressions.Op.Binary(com.clevercloud.biscuit.datalog.expressions.Op.BinaryOp.Suffix));
+                    ops.add(new org.biscuitsec.biscuit.datalog.expressions.Op.Binary(org.biscuitsec.biscuit.datalog.expressions.Op.BinaryOp.Suffix));
                     break;
                 case Regex:
-                    ops.add(new com.clevercloud.biscuit.datalog.expressions.Op.Binary(com.clevercloud.biscuit.datalog.expressions.Op.BinaryOp.Regex));
+                    ops.add(new org.biscuitsec.biscuit.datalog.expressions.Op.Binary(org.biscuitsec.biscuit.datalog.expressions.Op.BinaryOp.Regex));
                     break;
                 case Add:
-                    ops.add(new com.clevercloud.biscuit.datalog.expressions.Op.Binary(com.clevercloud.biscuit.datalog.expressions.Op.BinaryOp.Add));
+                    ops.add(new org.biscuitsec.biscuit.datalog.expressions.Op.Binary(org.biscuitsec.biscuit.datalog.expressions.Op.BinaryOp.Add));
                     break;
                 case Sub:
-                    ops.add(new com.clevercloud.biscuit.datalog.expressions.Op.Binary(com.clevercloud.biscuit.datalog.expressions.Op.BinaryOp.Sub));
+                    ops.add(new org.biscuitsec.biscuit.datalog.expressions.Op.Binary(org.biscuitsec.biscuit.datalog.expressions.Op.BinaryOp.Sub));
                     break;
                 case Mul:
-                    ops.add(new com.clevercloud.biscuit.datalog.expressions.Op.Binary(com.clevercloud.biscuit.datalog.expressions.Op.BinaryOp.Mul));
+                    ops.add(new org.biscuitsec.biscuit.datalog.expressions.Op.Binary(org.biscuitsec.biscuit.datalog.expressions.Op.BinaryOp.Mul));
                     break;
                 case Div:
-                    ops.add(new com.clevercloud.biscuit.datalog.expressions.Op.Binary(com.clevercloud.biscuit.datalog.expressions.Op.BinaryOp.Div));
+                    ops.add(new org.biscuitsec.biscuit.datalog.expressions.Op.Binary(org.biscuitsec.biscuit.datalog.expressions.Op.BinaryOp.Div));
                     break;
                 case And:
-                    ops.add(new com.clevercloud.biscuit.datalog.expressions.Op.Binary(com.clevercloud.biscuit.datalog.expressions.Op.BinaryOp.And));
+                    ops.add(new org.biscuitsec.biscuit.datalog.expressions.Op.Binary(org.biscuitsec.biscuit.datalog.expressions.Op.BinaryOp.And));
                     break;
                 case Or:
-                    ops.add(new com.clevercloud.biscuit.datalog.expressions.Op.Binary(com.clevercloud.biscuit.datalog.expressions.Op.BinaryOp.Or));
+                    ops.add(new org.biscuitsec.biscuit.datalog.expressions.Op.Binary(org.biscuitsec.biscuit.datalog.expressions.Op.BinaryOp.Or));
                     break;
                 case Intersection:
-                    ops.add(new com.clevercloud.biscuit.datalog.expressions.Op.Binary(com.clevercloud.biscuit.datalog.expressions.Op.BinaryOp.Intersection));
+                    ops.add(new org.biscuitsec.biscuit.datalog.expressions.Op.Binary(org.biscuitsec.biscuit.datalog.expressions.Op.BinaryOp.Intersection));
                     break;
                 case Union:
-                    ops.add(new com.clevercloud.biscuit.datalog.expressions.Op.Binary(com.clevercloud.biscuit.datalog.expressions.Op.BinaryOp.Union));
+                    ops.add(new org.biscuitsec.biscuit.datalog.expressions.Op.Binary(org.biscuitsec.biscuit.datalog.expressions.Op.BinaryOp.Union));
                     break;
                 case BitwiseAnd:
-                    ops.add(new com.clevercloud.biscuit.datalog.expressions.Op.Binary(com.clevercloud.biscuit.datalog.expressions.Op.BinaryOp.BitwiseAnd));
+                    ops.add(new org.biscuitsec.biscuit.datalog.expressions.Op.Binary(org.biscuitsec.biscuit.datalog.expressions.Op.BinaryOp.BitwiseAnd));
                     break;
                 case BitwiseOr:
-                    ops.add(new com.clevercloud.biscuit.datalog.expressions.Op.Binary(com.clevercloud.biscuit.datalog.expressions.Op.BinaryOp.BitwiseOr));
+                    ops.add(new org.biscuitsec.biscuit.datalog.expressions.Op.Binary(org.biscuitsec.biscuit.datalog.expressions.Op.BinaryOp.BitwiseOr));
                     break;
                 case BitwiseXor:
-                    ops.add(new com.clevercloud.biscuit.datalog.expressions.Op.Binary(com.clevercloud.biscuit.datalog.expressions.Op.BinaryOp.BitwiseXor));
+                    ops.add(new org.biscuitsec.biscuit.datalog.expressions.Op.Binary(org.biscuitsec.biscuit.datalog.expressions.Op.BinaryOp.BitwiseXor));
                     break;
             }
         }
diff --git a/src/main/java/com/clevercloud/biscuit/token/builder/Fact.java b/src/main/java/org/biscuitsec/biscuit/token/builder/Fact.java
similarity index 89%
rename from src/main/java/com/clevercloud/biscuit/token/builder/Fact.java
rename to src/main/java/org/biscuitsec/biscuit/token/builder/Fact.java
index f2f8bb29..acad5e9c 100644
--- a/src/main/java/com/clevercloud/biscuit/token/builder/Fact.java
+++ b/src/main/java/org/biscuitsec/biscuit/token/builder/Fact.java
@@ -1,8 +1,8 @@
-package com.clevercloud.biscuit.token.builder;
+package org.biscuitsec.biscuit.token.builder;
 
-import com.clevercloud.biscuit.datalog.SymbolTable;
-import com.clevercloud.biscuit.error.Error;
-import com.clevercloud.biscuit.error.FailedCheck;
+import org.biscuitsec.biscuit.datalog.SymbolTable;
+import org.biscuitsec.biscuit.error.Error;
+import org.biscuitsec.biscuit.error.FailedCheck;
 import io.vavr.control.Option;
 
 import java.util.HashMap;
@@ -79,13 +79,13 @@ public Fact apply_variables() {
         return this;
     }
 
-    public com.clevercloud.biscuit.datalog.Fact convert(SymbolTable symbols) {
+    public org.biscuitsec.biscuit.datalog.Fact convert(SymbolTable symbols) {
         Fact f = this.clone();
         f.apply_variables();
-        return new com.clevercloud.biscuit.datalog.Fact(f.predicate.convert(symbols));
+        return new org.biscuitsec.biscuit.datalog.Fact(f.predicate.convert(symbols));
     }
 
-    public static Fact convert_from(com.clevercloud.biscuit.datalog.Fact f, SymbolTable symbols) {
+    public static Fact convert_from(org.biscuitsec.biscuit.datalog.Fact f, SymbolTable symbols) {
         return new Fact(Predicate.convert_from(f.predicate(), symbols));
     }
 
diff --git a/src/main/java/com/clevercloud/biscuit/token/builder/Predicate.java b/src/main/java/org/biscuitsec/biscuit/token/builder/Predicate.java
similarity index 77%
rename from src/main/java/com/clevercloud/biscuit/token/builder/Predicate.java
rename to src/main/java/org/biscuitsec/biscuit/token/builder/Predicate.java
index 0ee51458..f177aefa 100644
--- a/src/main/java/com/clevercloud/biscuit/token/builder/Predicate.java
+++ b/src/main/java/org/biscuitsec/biscuit/token/builder/Predicate.java
@@ -1,6 +1,6 @@
-package com.clevercloud.biscuit.token.builder;
+package org.biscuitsec.biscuit.token.builder;
 
-import com.clevercloud.biscuit.datalog.SymbolTable;
+import org.biscuitsec.biscuit.datalog.SymbolTable;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -23,21 +23,21 @@ public List<Term> getTerms() {
         return terms;
     }
 
-    public com.clevercloud.biscuit.datalog.Predicate convert(SymbolTable symbols) {
+    public org.biscuitsec.biscuit.datalog.Predicate convert(SymbolTable symbols) {
         long name = symbols.insert(this.name);
-        ArrayList<com.clevercloud.biscuit.datalog.Term> terms = new ArrayList<>();
+        ArrayList<org.biscuitsec.biscuit.datalog.Term> terms = new ArrayList<>();
 
         for(Term a: this.terms) {
             terms.add(a.convert(symbols));
         }
 
-        return new com.clevercloud.biscuit.datalog.Predicate(name, terms);
+        return new org.biscuitsec.biscuit.datalog.Predicate(name, terms);
     }
 
-    public static Predicate convert_from(com.clevercloud.biscuit.datalog.Predicate p, SymbolTable symbols) {
+    public static Predicate convert_from(org.biscuitsec.biscuit.datalog.Predicate p, SymbolTable symbols) {
         String name = symbols.print_symbol((int) p.name());
         List<Term> terms = new ArrayList<>();
-        for(com.clevercloud.biscuit.datalog.Term t: p.terms()) {
+        for(org.biscuitsec.biscuit.datalog.Term t: p.terms()) {
             terms.add(t.toTerm(symbols));
         }
 
diff --git a/src/main/java/com/clevercloud/biscuit/token/builder/Rule.java b/src/main/java/org/biscuitsec/biscuit/token/builder/Rule.java
similarity index 88%
rename from src/main/java/com/clevercloud/biscuit/token/builder/Rule.java
rename to src/main/java/org/biscuitsec/biscuit/token/builder/Rule.java
index 19c7deca..2d89bb55 100644
--- a/src/main/java/com/clevercloud/biscuit/token/builder/Rule.java
+++ b/src/main/java/org/biscuitsec/biscuit/token/builder/Rule.java
@@ -1,8 +1,8 @@
-package com.clevercloud.biscuit.token.builder;
+package org.biscuitsec.biscuit.token.builder;
 
-import com.clevercloud.biscuit.datalog.SymbolTable;
-import com.clevercloud.biscuit.error.Error;
-import com.clevercloud.biscuit.error.FailedCheck;
+import org.biscuitsec.biscuit.datalog.SymbolTable;
+import org.biscuitsec.biscuit.error.Error;
+import org.biscuitsec.biscuit.error.FailedCheck;
 import io.vavr.control.Either;
 import io.vavr.control.Option;
 
@@ -131,13 +131,13 @@ public Either<String, Rule> validate_variables() {
         return Either.left("rule head or expressions contains variables that are not used in predicates of the rule's body: " + free_variables.toString());
     }
 
-    public com.clevercloud.biscuit.datalog.Rule convert(SymbolTable symbols) {
+    public org.biscuitsec.biscuit.datalog.Rule convert(SymbolTable symbols) {
         Rule r = this.clone();
         r.apply_variables();
-        com.clevercloud.biscuit.datalog.Predicate head = r.head.convert(symbols);
-        ArrayList<com.clevercloud.biscuit.datalog.Predicate> body = new ArrayList<>();
-        ArrayList<com.clevercloud.biscuit.datalog.expressions.Expression> expressions = new ArrayList<>();
-        ArrayList<com.clevercloud.biscuit.datalog.Scope> scopes = new ArrayList<>();
+        org.biscuitsec.biscuit.datalog.Predicate head = r.head.convert(symbols);
+        ArrayList<org.biscuitsec.biscuit.datalog.Predicate> body = new ArrayList<>();
+        ArrayList<org.biscuitsec.biscuit.datalog.expressions.Expression> expressions = new ArrayList<>();
+        ArrayList<org.biscuitsec.biscuit.datalog.Scope> scopes = new ArrayList<>();
 
 
         for (Predicate p : r.body) {
@@ -152,10 +152,10 @@ public com.clevercloud.biscuit.datalog.Rule convert(SymbolTable symbols) {
             scopes.add(s.convert(symbols));
         }
 
-        return new com.clevercloud.biscuit.datalog.Rule(head, body, expressions, scopes);
+        return new org.biscuitsec.biscuit.datalog.Rule(head, body, expressions, scopes);
     }
 
-    public static Rule convert_from(com.clevercloud.biscuit.datalog.Rule r, SymbolTable symbols) {
+    public static Rule convert_from(org.biscuitsec.biscuit.datalog.Rule r, SymbolTable symbols) {
         Predicate head = Predicate.convert_from(r.head(), symbols);
 
         ArrayList<Predicate> body = new ArrayList<>();
@@ -163,15 +163,15 @@ public static Rule convert_from(com.clevercloud.biscuit.datalog.Rule r, SymbolTa
         ArrayList<Scope> scopes = new ArrayList<>();
 
 
-        for (com.clevercloud.biscuit.datalog.Predicate p : r.body()) {
+        for (org.biscuitsec.biscuit.datalog.Predicate p : r.body()) {
             body.add(Predicate.convert_from(p, symbols));
         }
 
-        for (com.clevercloud.biscuit.datalog.expressions.Expression e : r.expressions()) {
+        for (org.biscuitsec.biscuit.datalog.expressions.Expression e : r.expressions()) {
             expressions.add(Expression.convert_from(e, symbols));
         }
 
-        for (com.clevercloud.biscuit.datalog.Scope s : r.scopes()) {
+        for (org.biscuitsec.biscuit.datalog.Scope s : r.scopes()) {
             scopes.add(Scope.convert_from(s, symbols));
         }
 
diff --git a/src/main/java/com/clevercloud/biscuit/token/builder/Scope.java b/src/main/java/org/biscuitsec/biscuit/token/builder/Scope.java
similarity index 83%
rename from src/main/java/com/clevercloud/biscuit/token/builder/Scope.java
rename to src/main/java/org/biscuitsec/biscuit/token/builder/Scope.java
index 30092854..3e25a8c1 100644
--- a/src/main/java/com/clevercloud/biscuit/token/builder/Scope.java
+++ b/src/main/java/org/biscuitsec/biscuit/token/builder/Scope.java
@@ -1,7 +1,7 @@
-package com.clevercloud.biscuit.token.builder;
+package org.biscuitsec.biscuit.token.builder;
 
-import com.clevercloud.biscuit.crypto.PublicKey;
-import com.clevercloud.biscuit.datalog.SymbolTable;
+import org.biscuitsec.biscuit.crypto.PublicKey;
+import org.biscuitsec.biscuit.datalog.SymbolTable;
 
 import java.util.Objects;
 
@@ -51,24 +51,24 @@ public static Scope parameter(String parameter) {
         return new Scope(Kind.Parameter, parameter);
     }
 
-    public com.clevercloud.biscuit.datalog.Scope convert(SymbolTable symbols) {
+    public org.biscuitsec.biscuit.datalog.Scope convert(SymbolTable symbols) {
         switch (this.kind) {
             case Authority:
-                return com.clevercloud.biscuit.datalog.Scope.authority();
+                return org.biscuitsec.biscuit.datalog.Scope.authority();
             case Previous:
-                return com.clevercloud.biscuit.datalog.Scope.previous();
+                return org.biscuitsec.biscuit.datalog.Scope.previous();
             case Parameter:
                 //FIXME
                 return null;
             //throw new Exception("Remaining parameter: "+this.parameter);
             case PublicKey:
-                return com.clevercloud.biscuit.datalog.Scope.publicKey(symbols.insert(this.publicKey));
+                return org.biscuitsec.biscuit.datalog.Scope.publicKey(symbols.insert(this.publicKey));
         }
         //FIXME
         return null;
     }
 
-    public static Scope convert_from(com.clevercloud.biscuit.datalog.Scope scope, SymbolTable symbols) {
+    public static Scope convert_from(org.biscuitsec.biscuit.datalog.Scope scope, SymbolTable symbols) {
         switch (scope.kind()) {
             case Authority:
                 return new Scope(Kind.Authority);
diff --git a/src/main/java/com/clevercloud/biscuit/token/builder/Term.java b/src/main/java/org/biscuitsec/biscuit/token/builder/Term.java
similarity index 78%
rename from src/main/java/com/clevercloud/biscuit/token/builder/Term.java
rename to src/main/java/org/biscuitsec/biscuit/token/builder/Term.java
index fc298dba..625ad4e4 100644
--- a/src/main/java/com/clevercloud/biscuit/token/builder/Term.java
+++ b/src/main/java/org/biscuitsec/biscuit/token/builder/Term.java
@@ -1,6 +1,6 @@
-package com.clevercloud.biscuit.token.builder;
+package org.biscuitsec.biscuit.token.builder;
 
-import com.clevercloud.biscuit.datalog.SymbolTable;
+import org.biscuitsec.biscuit.datalog.SymbolTable;
 
 import java.util.Arrays;
 import java.util.Collections;
@@ -8,8 +8,8 @@
 import java.util.Objects;
 
 public abstract class Term {
-    abstract public com.clevercloud.biscuit.datalog.Term convert(SymbolTable symbols);
-    static public Term convert_from(com.clevercloud.biscuit.datalog.Term id, SymbolTable symbols) {
+    abstract public org.biscuitsec.biscuit.datalog.Term convert(SymbolTable symbols);
+    static public Term convert_from(org.biscuitsec.biscuit.datalog.Term id, SymbolTable symbols) {
         return id.toTerm(symbols);
     }
 
@@ -21,8 +21,8 @@ public Str(String value) {
         }
 
         @Override
-        public com.clevercloud.biscuit.datalog.Term convert(SymbolTable symbols) {
-            return new com.clevercloud.biscuit.datalog.Term.Str(symbols.insert(this.value));
+        public org.biscuitsec.biscuit.datalog.Term convert(SymbolTable symbols) {
+            return new org.biscuitsec.biscuit.datalog.Term.Str(symbols.insert(this.value));
         }
 
         public String getValue() {
@@ -56,8 +56,8 @@ public Variable(String value) {
         }
 
         @Override
-        public com.clevercloud.biscuit.datalog.Term convert(SymbolTable symbols) {
-            return new com.clevercloud.biscuit.datalog.Term.Variable(symbols.insert(this.value));
+        public org.biscuitsec.biscuit.datalog.Term convert(SymbolTable symbols) {
+            return new org.biscuitsec.biscuit.datalog.Term.Variable(symbols.insert(this.value));
         }
 
         public String getValue() {
@@ -97,8 +97,8 @@ public long getValue() {
         }
 
         @Override
-        public com.clevercloud.biscuit.datalog.Term convert(SymbolTable symbols) {
-            return new com.clevercloud.biscuit.datalog.Term.Integer(this.value);
+        public org.biscuitsec.biscuit.datalog.Term convert(SymbolTable symbols) {
+            return new org.biscuitsec.biscuit.datalog.Term.Integer(this.value);
         }
 
         @Override
@@ -130,8 +130,8 @@ public Bytes(byte[] value) {
         }
 
         @Override
-        public com.clevercloud.biscuit.datalog.Term convert(SymbolTable symbols) {
-            return new com.clevercloud.biscuit.datalog.Term.Bytes(this.value);
+        public org.biscuitsec.biscuit.datalog.Term convert(SymbolTable symbols) {
+            return new org.biscuitsec.biscuit.datalog.Term.Bytes(this.value);
         }
 
         public byte[] getValue() {
@@ -167,8 +167,8 @@ public Date(long value) {
         }
 
         @Override
-        public com.clevercloud.biscuit.datalog.Term convert(SymbolTable symbols) {
-            return new com.clevercloud.biscuit.datalog.Term.Date(this.value);
+        public org.biscuitsec.biscuit.datalog.Term convert(SymbolTable symbols) {
+            return new org.biscuitsec.biscuit.datalog.Term.Date(this.value);
         }
 
         public long getValue() {
@@ -204,8 +204,8 @@ public Bool(boolean value) {
         }
 
         @Override
-        public com.clevercloud.biscuit.datalog.Term convert(SymbolTable symbols) {
-            return new com.clevercloud.biscuit.datalog.Term.Bool(this.value);
+        public org.biscuitsec.biscuit.datalog.Term convert(SymbolTable symbols) {
+            return new org.biscuitsec.biscuit.datalog.Term.Bool(this.value);
         }
 
         public boolean getValue() {
@@ -241,14 +241,14 @@ public Set(java.util.Set<Term> value) {
         }
 
         @Override
-        public com.clevercloud.biscuit.datalog.Term convert(SymbolTable symbols) {
-            HashSet<com.clevercloud.biscuit.datalog.Term> s = new HashSet<>();
+        public org.biscuitsec.biscuit.datalog.Term convert(SymbolTable symbols) {
+            HashSet<org.biscuitsec.biscuit.datalog.Term> s = new HashSet<>();
 
             for(Term t: this.value) {
                 s.add(t.convert(symbols));
             }
 
-            return new com.clevercloud.biscuit.datalog.Term.Set(s);
+            return new org.biscuitsec.biscuit.datalog.Term.Set(s);
         }
 
         public java.util.Set<Term> getValue() {
diff --git a/src/main/java/com/clevercloud/biscuit/token/builder/Utils.java b/src/main/java/org/biscuitsec/biscuit/token/builder/Utils.java
similarity index 50%
rename from src/main/java/com/clevercloud/biscuit/token/builder/Utils.java
rename to src/main/java/org/biscuitsec/biscuit/token/builder/Utils.java
index 3d04e6ac..9ab879cb 100644
--- a/src/main/java/com/clevercloud/biscuit/token/builder/Utils.java
+++ b/src/main/java/org/biscuitsec/biscuit/token/builder/Utils.java
@@ -1,35 +1,35 @@
-package com.clevercloud.biscuit.token.builder;
+package org.biscuitsec.biscuit.token.builder;
 
-import com.clevercloud.biscuit.error.Error;
+import org.biscuitsec.biscuit.error.Error;
 
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashSet;
 import java.util.List;
 
-import static com.clevercloud.biscuit.datalog.Check.Kind.One;
+import static org.biscuitsec.biscuit.datalog.Check.Kind.One;
 
 public class Utils {
-    public static com.clevercloud.biscuit.token.builder.Fact fact(String name, List<Term> ids) throws Error.Language {
-        return new com.clevercloud.biscuit.token.builder.Fact(name, ids);
+    public static Fact fact(String name, List<Term> ids) throws Error.Language {
+        return new Fact(name, ids);
     }
 
-    public static com.clevercloud.biscuit.token.builder.Predicate pred(String name, List<Term> ids) {
-        return new com.clevercloud.biscuit.token.builder.Predicate(name, ids);
+    public static Predicate pred(String name, List<Term> ids) {
+        return new Predicate(name, ids);
     }
 
-    public static com.clevercloud.biscuit.token.builder.Rule rule(String head_name, List<Term> head_ids,
-                                                                  List<com.clevercloud.biscuit.token.builder.Predicate> predicates) {
-        return new com.clevercloud.biscuit.token.builder.Rule(pred(head_name, head_ids), predicates, new ArrayList<>(), new ArrayList<>());
+    public static Rule rule(String head_name, List<Term> head_ids,
+                            List<Predicate> predicates) {
+        return new Rule(pred(head_name, head_ids), predicates, new ArrayList<>(), new ArrayList<>());
     }
 
-    public static com.clevercloud.biscuit.token.builder.Rule constrained_rule(String head_name, List<Term> head_ids,
-                                                                              List<com.clevercloud.biscuit.token.builder.Predicate> predicates,
-                                                                              List<Expression> expressions) {
-        return new com.clevercloud.biscuit.token.builder.Rule(pred(head_name, head_ids), predicates, expressions, new ArrayList<>());
+    public static Rule constrained_rule(String head_name, List<Term> head_ids,
+                                        List<Predicate> predicates,
+                                        List<Expression> expressions) {
+        return new Rule(pred(head_name, head_ids), predicates, expressions, new ArrayList<>());
     }
 
-    public static Check check(com.clevercloud.biscuit.token.builder.Rule rule) {
+    public static Check check(Rule rule) {
         return new Check(One,rule);
     }
 
diff --git a/src/main/java/com/clevercloud/biscuit/token/builder/package-info.java b/src/main/java/org/biscuitsec/biscuit/token/builder/package-info.java
similarity index 55%
rename from src/main/java/com/clevercloud/biscuit/token/builder/package-info.java
rename to src/main/java/org/biscuitsec/biscuit/token/builder/package-info.java
index 4213c0c0..4b4bae49 100644
--- a/src/main/java/com/clevercloud/biscuit/token/builder/package-info.java
+++ b/src/main/java/org/biscuitsec/biscuit/token/builder/package-info.java
@@ -1,4 +1,4 @@
 /**
  * Builder interface to create tokens and caveats
  */
-package com.clevercloud.biscuit.token.builder;
\ No newline at end of file
+package org.biscuitsec.biscuit.token.builder;
\ No newline at end of file
diff --git a/src/main/java/com/clevercloud/biscuit/token/builder/parser/Error.java b/src/main/java/org/biscuitsec/biscuit/token/builder/parser/Error.java
similarity index 95%
rename from src/main/java/com/clevercloud/biscuit/token/builder/parser/Error.java
rename to src/main/java/org/biscuitsec/biscuit/token/builder/parser/Error.java
index fe533328..f5e5ee32 100644
--- a/src/main/java/com/clevercloud/biscuit/token/builder/parser/Error.java
+++ b/src/main/java/org/biscuitsec/biscuit/token/builder/parser/Error.java
@@ -1,4 +1,4 @@
-package com.clevercloud.biscuit.token.builder.parser;
+package org.biscuitsec.biscuit.token.builder.parser;
 
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
diff --git a/src/main/java/com/clevercloud/biscuit/token/builder/parser/ExpressionParser.java b/src/main/java/org/biscuitsec/biscuit/token/builder/parser/ExpressionParser.java
similarity index 98%
rename from src/main/java/com/clevercloud/biscuit/token/builder/parser/ExpressionParser.java
rename to src/main/java/org/biscuitsec/biscuit/token/builder/parser/ExpressionParser.java
index 50b507b1..9c3c00a2 100644
--- a/src/main/java/com/clevercloud/biscuit/token/builder/parser/ExpressionParser.java
+++ b/src/main/java/org/biscuitsec/biscuit/token/builder/parser/ExpressionParser.java
@@ -1,12 +1,12 @@
-package com.clevercloud.biscuit.token.builder.parser;
+package org.biscuitsec.biscuit.token.builder.parser;
 
-import com.clevercloud.biscuit.token.builder.Term;
+import org.biscuitsec.biscuit.token.builder.Term;
 import io.vavr.Tuple2;
 import io.vavr.control.Either;
-import com.clevercloud.biscuit.token.builder.Expression;
+import org.biscuitsec.biscuit.token.builder.Expression;
 
-import static com.clevercloud.biscuit.token.builder.parser.Parser.space;
-import static com.clevercloud.biscuit.token.builder.parser.Parser.term;
+import static org.biscuitsec.biscuit.token.builder.parser.Parser.space;
+import static org.biscuitsec.biscuit.token.builder.parser.Parser.term;
 
 public class ExpressionParser {
     public static Either<Error, Tuple2<String, Expression>> parse(String s) {
diff --git a/src/main/java/com/clevercloud/biscuit/token/builder/parser/Parser.java b/src/main/java/org/biscuitsec/biscuit/token/builder/parser/Parser.java
similarity index 97%
rename from src/main/java/com/clevercloud/biscuit/token/builder/parser/Parser.java
rename to src/main/java/org/biscuitsec/biscuit/token/builder/parser/Parser.java
index badda0f6..dbd1c2c8 100644
--- a/src/main/java/com/clevercloud/biscuit/token/builder/parser/Parser.java
+++ b/src/main/java/org/biscuitsec/biscuit/token/builder/parser/Parser.java
@@ -1,13 +1,12 @@
-package com.clevercloud.biscuit.token.builder.parser;
+package org.biscuitsec.biscuit.token.builder.parser;
 
 import biscuit.format.schema.Schema;
-import com.clevercloud.biscuit.crypto.PublicKey;
-import com.clevercloud.biscuit.token.Policy;
-import com.clevercloud.biscuit.token.builder.*;
+import org.biscuitsec.biscuit.crypto.PublicKey;
+import org.biscuitsec.biscuit.token.Policy;
 import io.vavr.Tuple2;
-import io.vavr.Tuple3;
 import io.vavr.Tuple4;
 import io.vavr.control.Either;
+import org.biscuitsec.biscuit.token.builder.*;
 
 import java.time.OffsetDateTime;
 import java.time.format.DateTimeParseException;
@@ -16,10 +15,6 @@
 import java.util.HashSet;
 import java.util.function.Function;
 
-import static com.clevercloud.biscuit.datalog.Check.Kind.All;
-import static com.clevercloud.biscuit.datalog.Check.Kind.One;
-import static com.clevercloud.biscuit.token.builder.Utils.*;
-
 public class Parser {
     public static Either<Error, Tuple2<String, Fact>> fact(String s) {
         Either<Error, Tuple2<String, Predicate>> res = fact_predicate(s);
@@ -75,13 +70,13 @@ public static Either<Error, Tuple2<String, Rule>> rule(String s) {
     }
 
     public static Either<Error, Tuple2<String, Check>> check(String s) {
-        com.clevercloud.biscuit.datalog.Check.Kind kind;
+        org.biscuitsec.biscuit.datalog.Check.Kind kind;
 
         if (s.startsWith("check if")) {
-            kind = One;
+            kind = org.biscuitsec.biscuit.datalog.Check.Kind.One;
             s = s.substring("check if".length());
         } else if (s.startsWith("check all")) {
-            kind = All;
+            kind = org.biscuitsec.biscuit.datalog.Check.Kind.All;
             s = s.substring("check all".length());
         } else {
             return Either.left(new Error(s, "missing check prefix"));
@@ -555,7 +550,7 @@ public static Either<Error, Tuple2<String, Term.Variable>> variable(String s) {
 
         Tuple2<String, String> t = take_while(s.substring(1), (c) -> Character.isAlphabetic(c) || Character.isDigit(c) || c == '_');
 
-        return Either.right(new Tuple2<String, Term.Variable>(t._2, (Term.Variable) var(t._1)));
+        return Either.right(new Tuple2<String, Term.Variable>(t._2, (Term.Variable) Utils.var(t._1)));
     }
 
     public static Either<Error, Tuple2<String, Term.Bool>> bool(String s) {
@@ -639,7 +634,7 @@ public static Tuple2<String, byte[]> hex(String s) {
         }
 
         String hex =  s.substring(0, index);
-        byte[] bytes = hexStringToByteArray(hex);
+        byte[] bytes = Utils.hexStringToByteArray(hex);
         s = s.substring(index);
         return new Tuple2<>(s,bytes);
 
diff --git a/src/main/java/com/clevercloud/biscuit/token/format/ExternalSignature.java b/src/main/java/org/biscuitsec/biscuit/token/format/ExternalSignature.java
similarity index 70%
rename from src/main/java/com/clevercloud/biscuit/token/format/ExternalSignature.java
rename to src/main/java/org/biscuitsec/biscuit/token/format/ExternalSignature.java
index c816566a..1248d3aa 100644
--- a/src/main/java/com/clevercloud/biscuit/token/format/ExternalSignature.java
+++ b/src/main/java/org/biscuitsec/biscuit/token/format/ExternalSignature.java
@@ -1,6 +1,6 @@
-package com.clevercloud.biscuit.token.format;
+package org.biscuitsec.biscuit.token.format;
 
-import com.clevercloud.biscuit.crypto.PublicKey;
+import org.biscuitsec.biscuit.crypto.PublicKey;
 
 public class ExternalSignature {
     public PublicKey key;
diff --git a/src/main/java/com/clevercloud/biscuit/token/format/Proof.java b/src/main/java/org/biscuitsec/biscuit/token/format/Proof.java
similarity index 85%
rename from src/main/java/com/clevercloud/biscuit/token/format/Proof.java
rename to src/main/java/org/biscuitsec/biscuit/token/format/Proof.java
index 5f0dc998..b4a0ef82 100644
--- a/src/main/java/com/clevercloud/biscuit/token/format/Proof.java
+++ b/src/main/java/org/biscuitsec/biscuit/token/format/Proof.java
@@ -1,6 +1,6 @@
-package com.clevercloud.biscuit.token.format;
+package org.biscuitsec.biscuit.token.format;
 
-import com.clevercloud.biscuit.crypto.KeyPair;
+import org.biscuitsec.biscuit.crypto.KeyPair;
 import io.vavr.control.Option;
 
 public class Proof {
diff --git a/src/main/java/com/clevercloud/biscuit/token/format/SerializedBiscuit.java b/src/main/java/org/biscuitsec/biscuit/token/format/SerializedBiscuit.java
similarity index 85%
rename from src/main/java/com/clevercloud/biscuit/token/format/SerializedBiscuit.java
rename to src/main/java/org/biscuitsec/biscuit/token/format/SerializedBiscuit.java
index 8f4d6094..7e4fc443 100644
--- a/src/main/java/com/clevercloud/biscuit/token/format/SerializedBiscuit.java
+++ b/src/main/java/org/biscuitsec/biscuit/token/format/SerializedBiscuit.java
@@ -1,12 +1,12 @@
-package com.clevercloud.biscuit.token.format;
+package org.biscuitsec.biscuit.token.format;
 
 import biscuit.format.schema.Schema;
-import com.clevercloud.biscuit.crypto.KeyDelegate;
-import com.clevercloud.biscuit.crypto.KeyPair;
-import com.clevercloud.biscuit.crypto.PublicKey;
-import com.clevercloud.biscuit.datalog.SymbolTable;
-import com.clevercloud.biscuit.error.Error;
-import com.clevercloud.biscuit.token.Block;
+import org.biscuitsec.biscuit.crypto.KeyDelegate;
+import org.biscuitsec.biscuit.crypto.KeyPair;
+import org.biscuitsec.biscuit.crypto.PublicKey;
+import org.biscuitsec.biscuit.datalog.SymbolTable;
+import org.biscuitsec.biscuit.error.Error;
+import org.biscuitsec.biscuit.token.Block;
 import com.google.protobuf.ByteString;
 import com.google.protobuf.InvalidProtocolBufferException;
 import io.vavr.Tuple3;
@@ -21,7 +21,6 @@
 import java.security.*;
 import java.util.*;
 
-import static com.clevercloud.biscuit.crypto.KeyPair.ed25519;
 import static io.vavr.API.Left;
 import static io.vavr.API.Right;
 
@@ -43,7 +42,7 @@ public class SerializedBiscuit {
      * @param slice
      * @return
      */
-    static public SerializedBiscuit from_bytes(byte[] slice, PublicKey root) throws NoSuchAlgorithmException, SignatureException, InvalidKeyException, Error {
+    static public SerializedBiscuit from_bytes(byte[] slice, org.biscuitsec.biscuit.crypto.PublicKey root) throws NoSuchAlgorithmException, SignatureException, InvalidKeyException, Error {
         try {
             Schema.Biscuit data = Schema.Biscuit.parseFrom(slice);
 
@@ -68,7 +67,7 @@ static public SerializedBiscuit from_bytes(byte[] slice, KeyDelegate delegate) t
                 root_key_id = Option.some(data.getRootKeyId());
             }
 
-            Option<PublicKey> root = delegate.root_key(root_key_id);
+            Option<org.biscuitsec.biscuit.crypto.PublicKey> root = delegate.root_key(root_key_id);
             if (root.isEmpty()) {
                 throw new InvalidKeyException("unknown root key id");
             }
@@ -79,7 +78,7 @@ static public SerializedBiscuit from_bytes(byte[] slice, KeyDelegate delegate) t
         }
     }
 
-    static SerializedBiscuit from_bytes_inner(Schema.Biscuit data, PublicKey root) throws NoSuchAlgorithmException, SignatureException, InvalidKeyException, Error {
+    static SerializedBiscuit from_bytes_inner(Schema.Biscuit data, org.biscuitsec.biscuit.crypto.PublicKey root) throws NoSuchAlgorithmException, SignatureException, InvalidKeyException, Error {
         SerializedBiscuit b = SerializedBiscuit.deserialize(data);
         if (data.hasRootKeyId()) {
             b.root_key_id = Option.some(data.getRootKeyId());
@@ -126,7 +125,7 @@ static private SerializedBiscuit deserialize(Schema.Biscuit data) throws Error.F
 
         SignedBlock authority = new SignedBlock(
                 data.getAuthority().getBlock().toByteArray(),
-                PublicKey.deserialize(data.getAuthority().getNextKey()),
+                org.biscuitsec.biscuit.crypto.PublicKey.deserialize(data.getAuthority().getNextKey()),
                 data.getAuthority().getSignature().toByteArray(),
                 Option.none()
         );
@@ -138,21 +137,21 @@ static private SerializedBiscuit deserialize(Schema.Biscuit data) throws Error.F
                 && block.getExternalSignature().hasSignature()) {
                 Schema.ExternalSignature ex = block.getExternalSignature();
                 external = Option.some(new ExternalSignature(
-                        PublicKey.deserialize(ex.getPublicKey()),
+                        org.biscuitsec.biscuit.crypto.PublicKey.deserialize(ex.getPublicKey()),
                         ex.getSignature().toByteArray()));
 
             }
             blocks.add(new SignedBlock(
                     block.getBlock().toByteArray(),
-                    PublicKey.deserialize(block.getNextKey()),
+                    org.biscuitsec.biscuit.crypto.PublicKey.deserialize(block.getNextKey()),
                     block.getSignature().toByteArray(),
                     external
             ));
         }
 
-        Option<KeyPair> secretKey = Option.none();
+        Option<org.biscuitsec.biscuit.crypto.KeyPair> secretKey = Option.none();
         if (data.getProof().hasNextSecret()) {
-            secretKey = Option.some(new KeyPair(data.getProof().getNextSecret().toByteArray()));
+            secretKey = Option.some(new org.biscuitsec.biscuit.crypto.KeyPair(data.getProof().getNextSecret().toByteArray()));
         }
 
         Option<byte[]> signature = Option.none();
@@ -220,25 +219,25 @@ public byte[] serialize() throws Error.FormatError.SerializationError {
 
     }
 
-    static public Either<Error.FormatError, SerializedBiscuit> make(final KeyPair root,
-                                                                    final Block authority, final KeyPair next) {
+    static public Either<Error.FormatError, SerializedBiscuit> make(final org.biscuitsec.biscuit.crypto.KeyPair root,
+                                                                    final Block authority, final org.biscuitsec.biscuit.crypto.KeyPair next) {
 
         return make(root, Option.none(), authority, next);
     }
 
-    static public Either<Error.FormatError, SerializedBiscuit> make(final KeyPair root, final Option<Integer> root_key_id,
-                                                                    final Block authority, final KeyPair next) {
+    static public Either<Error.FormatError, SerializedBiscuit> make(final org.biscuitsec.biscuit.crypto.KeyPair root, final Option<Integer> root_key_id,
+                                                                    final Block authority, final org.biscuitsec.biscuit.crypto.KeyPair next) {
         Schema.Block b = authority.serialize();
         try {
             ByteArrayOutputStream stream = new ByteArrayOutputStream();
             b.writeTo(stream);
             byte[] block = stream.toByteArray();
-            PublicKey next_key = next.public_key();
+            org.biscuitsec.biscuit.crypto.PublicKey next_key = next.public_key();
             ByteBuffer algo_buf = ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN);
             algo_buf.putInt(Integer.valueOf(next_key.algorithm.getNumber()));
             algo_buf.flip();
 
-            Signature sgr = new EdDSAEngine(MessageDigest.getInstance(ed25519.getHashAlgorithm()));
+            Signature sgr = new EdDSAEngine(MessageDigest.getInstance(org.biscuitsec.biscuit.crypto.KeyPair.ed25519.getHashAlgorithm()));
             sgr.initSign(root.private_key);
             sgr.update(block);
             sgr.update(algo_buf);
@@ -254,7 +253,7 @@ static public Either<Error.FormatError, SerializedBiscuit> make(final KeyPair ro
         }
     }
 
-    public Either<Error.FormatError, SerializedBiscuit> append(final KeyPair next,
+    public Either<Error.FormatError, SerializedBiscuit> append(final org.biscuitsec.biscuit.crypto.KeyPair next,
                                                                final Block newBlock) {
         if (this.proof.secretKey.isEmpty()) {
             return Left(new Error.FormatError.SerializationError("the token is sealed"));
@@ -266,12 +265,12 @@ public Either<Error.FormatError, SerializedBiscuit> append(final KeyPair next,
             b.writeTo(stream);
 
             byte[] block = stream.toByteArray();
-            PublicKey next_key = next.public_key();
+            org.biscuitsec.biscuit.crypto.PublicKey next_key = next.public_key();
             ByteBuffer algo_buf = ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN);
             algo_buf.putInt(Integer.valueOf(next_key.algorithm.getNumber()));
             algo_buf.flip();
 
-            Signature sgr = new EdDSAEngine(MessageDigest.getInstance(ed25519.getHashAlgorithm()));
+            Signature sgr = new EdDSAEngine(MessageDigest.getInstance(org.biscuitsec.biscuit.crypto.KeyPair.ed25519.getHashAlgorithm()));
             sgr.initSign(this.proof.secretKey.get().private_key);
             sgr.update(block);
             sgr.update(algo_buf);
@@ -294,7 +293,7 @@ public Either<Error.FormatError, SerializedBiscuit> append(final KeyPair next,
         }
     }
 
-    public Either<Error.FormatError, SerializedBiscuit> appendThirdParty(final KeyPair next,
+    public Either<Error.FormatError, SerializedBiscuit> appendThirdParty(final org.biscuitsec.biscuit.crypto.KeyPair next,
                                                                final Block newBlock) {
         /*if (this.proof.secretKey.isEmpty()) {
             return Left(new Error.FormatError.SerializationError("the token is sealed"));
@@ -335,11 +334,11 @@ public Either<Error.FormatError, SerializedBiscuit> appendThirdParty(final KeyPa
         throw new RuntimeException("todo");
     }
 
-    public Either<Error, Void> verify(PublicKey root) throws NoSuchAlgorithmException, InvalidKeyException, SignatureException {
-        PublicKey current_key = root;
+    public Either<Error, Void> verify(org.biscuitsec.biscuit.crypto.PublicKey root) throws NoSuchAlgorithmException, InvalidKeyException, SignatureException {
+        org.biscuitsec.biscuit.crypto.PublicKey current_key = root;
         ByteBuffer algo_buf = ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN);
         {
-            Either<Error, PublicKey> res = verifyBlockSignature(this.authority, current_key);
+            Either<Error, org.biscuitsec.biscuit.crypto.PublicKey> res = verifyBlockSignature(this.authority, current_key);
             if(res.isRight()) {
                 current_key = res.get();
             } else {
@@ -348,7 +347,7 @@ public Either<Error, Void> verify(PublicKey root) throws NoSuchAlgorithmExceptio
         }
 
         for (SignedBlock b : this.blocks) {
-            Either<Error, PublicKey> res = verifyBlockSignature(b, current_key);
+            Either<Error, org.biscuitsec.biscuit.crypto.PublicKey> res = verifyBlockSignature(b, current_key);
             if(res.isRight()) {
                 current_key = res.get();
             } else {
@@ -384,13 +383,13 @@ public Either<Error, Void> verify(PublicKey root) throws NoSuchAlgorithmExceptio
             }
 
             byte[] block = b.block;
-            PublicKey next_key = b.key;
+            org.biscuitsec.biscuit.crypto.PublicKey next_key = b.key;
             byte[] signature = b.signature;
             algo_buf.clear();
             algo_buf.putInt(next_key.algorithm.getNumber());
             algo_buf.flip();
 
-            Signature sgr = new EdDSAEngine(MessageDigest.getInstance(ed25519.getHashAlgorithm()));
+            Signature sgr = new EdDSAEngine(MessageDigest.getInstance(org.biscuitsec.biscuit.crypto.KeyPair.ed25519.getHashAlgorithm()));
 
             sgr.initVerify(current_key.key);
             sgr.update(block);
@@ -407,11 +406,11 @@ public Either<Error, Void> verify(PublicKey root) throws NoSuchAlgorithmExceptio
         }
     }
 
-    static Either<Error, PublicKey> verifyBlockSignature(SignedBlock signedBlock, PublicKey publicKey)
+    static Either<Error, org.biscuitsec.biscuit.crypto.PublicKey> verifyBlockSignature(SignedBlock signedBlock, org.biscuitsec.biscuit.crypto.PublicKey publicKey)
             throws NoSuchAlgorithmException, InvalidKeyException, SignatureException {
 
         byte[] block = signedBlock.block;
-        PublicKey next_key = signedBlock.key;
+        org.biscuitsec.biscuit.crypto.PublicKey next_key = signedBlock.key;
         byte[] signature = signedBlock.signature;
         if (signature.length != 64) {
             return Either.left(new Error.FormatError.Signature.InvalidSignatureSize(signature.length));
@@ -420,7 +419,7 @@ static Either<Error, PublicKey> verifyBlockSignature(SignedBlock signedBlock, Pu
         algo_buf.putInt(Integer.valueOf(next_key.algorithm.getNumber()));
         algo_buf.flip();
 
-        Signature sgr = new EdDSAEngine(MessageDigest.getInstance(ed25519.getHashAlgorithm()));
+        Signature sgr = new EdDSAEngine(MessageDigest.getInstance(org.biscuitsec.biscuit.crypto.KeyPair.ed25519.getHashAlgorithm()));
 
         sgr.initVerify(publicKey.key);
         sgr.update(block);
@@ -438,7 +437,7 @@ static Either<Error, PublicKey> verifyBlockSignature(SignedBlock signedBlock, Pu
             algo_buf2.putInt(Integer.valueOf(publicKey.algorithm.getNumber()));
             algo_buf2.flip();
 
-            Signature sgr2 = new EdDSAEngine(MessageDigest.getInstance(ed25519.getHashAlgorithm()));
+            Signature sgr2 = new EdDSAEngine(MessageDigest.getInstance(org.biscuitsec.biscuit.crypto.KeyPair.ed25519.getHashAlgorithm()));
             sgr2.initVerify(signedBlock.externalSignature.get().key.key);
             sgr2.update(block);
             sgr2.update(algo_buf2);
@@ -452,14 +451,14 @@ static Either<Error, PublicKey> verifyBlockSignature(SignedBlock signedBlock, Pu
     }
 
     public Tuple3<Block, ArrayList<Block>, HashMap<Long, List<Long>>> extractBlocks(SymbolTable symbols) throws Error {
-        ArrayList<Option<PublicKey>> blockExternalKeys = new ArrayList<>();
+        ArrayList<Option<org.biscuitsec.biscuit.crypto.PublicKey>> blockExternalKeys = new ArrayList<>();
         Either<Error.FormatError, Block> authRes = Block.from_bytes(this.authority.block, Option.none());
         if (authRes.isLeft()) {
             Error e = authRes.getLeft();
             throw e;
         }
         Block authority = authRes.get();
-        for(PublicKey pk: authority.publicKeys()) {
+        for(org.biscuitsec.biscuit.crypto.PublicKey pk: authority.publicKeys()) {
             symbols.insert(pk);
         }
         blockExternalKeys.add(Option.none());
@@ -470,7 +469,7 @@ public Tuple3<Block, ArrayList<Block>, HashMap<Long, List<Long>>> extractBlocks(
 
         ArrayList<Block> blocks = new ArrayList<>();
         for (SignedBlock bdata : this.blocks) {
-            Option<PublicKey> externalKey = Option.none();
+            Option<org.biscuitsec.biscuit.crypto.PublicKey> externalKey = Option.none();
             if(bdata.externalSignature.isDefined()) {
                 externalKey = Option.some(bdata.externalSignature.get().key);
             }
@@ -491,7 +490,7 @@ public Tuple3<Block, ArrayList<Block>, HashMap<Long, List<Long>>> extractBlocks(
                     symbols.add(s);
                 }
             }
-            for(PublicKey pk: block.publicKeys()) {
+            for(org.biscuitsec.biscuit.crypto.PublicKey pk: block.publicKeys()) {
                 symbols.insert(pk);
             }
             blocks.add(block);
@@ -523,7 +522,7 @@ public Either<Error, Void> seal() throws InvalidKeyException, NoSuchAlgorithmExc
             block = this.blocks.get(this.blocks.size() - 1);
         }
 
-        Signature sgr = new EdDSAEngine(MessageDigest.getInstance(ed25519.getHashAlgorithm()));
+        Signature sgr = new EdDSAEngine(MessageDigest.getInstance(KeyPair.ed25519.getHashAlgorithm()));
         ByteBuffer algo_buf = ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN);
         algo_buf.putInt(Integer.valueOf(block.key.algorithm.getNumber()));
         algo_buf.flip();
diff --git a/src/main/java/com/clevercloud/biscuit/token/format/SignedBlock.java b/src/main/java/org/biscuitsec/biscuit/token/format/SignedBlock.java
similarity index 73%
rename from src/main/java/com/clevercloud/biscuit/token/format/SignedBlock.java
rename to src/main/java/org/biscuitsec/biscuit/token/format/SignedBlock.java
index 9419f277..d7e6d4b1 100644
--- a/src/main/java/com/clevercloud/biscuit/token/format/SignedBlock.java
+++ b/src/main/java/org/biscuitsec/biscuit/token/format/SignedBlock.java
@@ -1,11 +1,8 @@
-package com.clevercloud.biscuit.token.format;
+package org.biscuitsec.biscuit.token.format;
 
-import com.clevercloud.biscuit.crypto.KeyPair;
-import com.clevercloud.biscuit.crypto.PublicKey;
+import org.biscuitsec.biscuit.crypto.PublicKey;
 import io.vavr.control.Option;
 
-import java.util.List;
-
 public class SignedBlock {
     public byte[] block;
     public PublicKey key;
diff --git a/src/main/java/org/biscuitsec/biscuit/token/format/package-info.java b/src/main/java/org/biscuitsec/biscuit/token/format/package-info.java
new file mode 100644
index 00000000..18f19f34
--- /dev/null
+++ b/src/main/java/org/biscuitsec/biscuit/token/format/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * Serializing code
+ */
+package org.biscuitsec.biscuit.token.format;
\ No newline at end of file
diff --git a/src/main/java/com/clevercloud/biscuit/token/package-info.java b/src/main/java/org/biscuitsec/biscuit/token/package-info.java
similarity index 64%
rename from src/main/java/com/clevercloud/biscuit/token/package-info.java
rename to src/main/java/org/biscuitsec/biscuit/token/package-info.java
index 628d13cd..5f91452a 100644
--- a/src/main/java/com/clevercloud/biscuit/token/package-info.java
+++ b/src/main/java/org/biscuitsec/biscuit/token/package-info.java
@@ -1,4 +1,4 @@
 /**
  * Classes related to creating and verifying Biscuit tokens
  */
-package com.clevercloud.biscuit.token;
\ No newline at end of file
+package org.biscuitsec.biscuit.token;
\ No newline at end of file
diff --git a/src/test/java/com/clevercloud/biscuit/builder/BuilderTest.java b/src/test/java/org/biscuitsec/biscuit/builder/BuilderTest.java
similarity index 62%
rename from src/test/java/com/clevercloud/biscuit/builder/BuilderTest.java
rename to src/test/java/org/biscuitsec/biscuit/builder/BuilderTest.java
index 4d9725d5..1d9a90e7 100644
--- a/src/test/java/com/clevercloud/biscuit/builder/BuilderTest.java
+++ b/src/test/java/org/biscuitsec/biscuit/builder/BuilderTest.java
@@ -1,12 +1,13 @@
-package com.clevercloud.biscuit.builder;
+package org.biscuitsec.biscuit.builder;
 
-import com.clevercloud.biscuit.crypto.KeyPair;
-import com.clevercloud.biscuit.datalog.SymbolTable;
-import com.clevercloud.biscuit.error.Error;
-import com.clevercloud.biscuit.token.Biscuit;
-import com.clevercloud.biscuit.token.builder.Block;
-import com.clevercloud.biscuit.token.builder.Expression;
-import com.clevercloud.biscuit.token.builder.Term;
+import org.biscuitsec.biscuit.crypto.KeyPair;
+import org.biscuitsec.biscuit.datalog.SymbolTable;
+import org.biscuitsec.biscuit.error.Error;
+import org.biscuitsec.biscuit.token.Biscuit;
+import org.biscuitsec.biscuit.token.builder.Block;
+import org.biscuitsec.biscuit.token.builder.Expression;
+import org.biscuitsec.biscuit.token.builder.Term;
+import org.biscuitsec.biscuit.token.builder.Utils;
 import org.junit.jupiter.api.Test;
 
 import java.nio.charset.StandardCharsets;
@@ -17,7 +18,6 @@
 import java.util.HashSet;
 import java.util.Set;
 
-import static com.clevercloud.biscuit.token.builder.Utils.*;
 import static org.junit.jupiter.api.Assertions.*;
 
 public class BuilderTest {
@@ -29,31 +29,31 @@ public void testBuild() throws Error.Language, Error.SymbolTableOverlap, Error.F
         SymbolTable symbols = Biscuit.default_symbol_table();
 
         Block authority_builder = new Block(0, symbols);
-        authority_builder.add_fact(fact("revocation_id", Arrays.asList(date(Date.from(Instant.now())))));
-        authority_builder.add_fact(fact("right", Arrays.asList(s("admin"))));
-        authority_builder.add_rule(constrained_rule("right",
-                Arrays.asList(s("namespace"), var("tenant"), var("namespace"), var("operation")),
-                Arrays.asList(pred("ns_operation", Arrays.asList(s("namespace"), var("tenant"), var("namespace"), var("operation")))),
+        authority_builder.add_fact(Utils.fact("revocation_id", Arrays.asList(Utils.date(Date.from(Instant.now())))));
+        authority_builder.add_fact(Utils.fact("right", Arrays.asList(Utils.s("admin"))));
+        authority_builder.add_rule(Utils.constrained_rule("right",
+                Arrays.asList(Utils.s("namespace"), Utils.var("tenant"), Utils.var("namespace"), Utils.var("operation")),
+                Arrays.asList(Utils.pred("ns_operation", Arrays.asList(Utils.s("namespace"), Utils.var("tenant"), Utils.var("namespace"), Utils.var("operation")))),
                 Arrays.asList(
                         new Expression.Binary(
                                 Expression.Op.Contains,
-                                new Expression.Value(var("operation")),
+                                new Expression.Value(Utils.var("operation")),
                                 new Expression.Value(new Term.Set(new HashSet<>(Arrays.asList(
-                                        s("create_topic"),
-                                        s("get_topic"),
-                                        s("get_topics")
+                                        Utils.s("create_topic"),
+                                        Utils.s("get_topic"),
+                                        Utils.s("get_topics")
                                 )))))
                 )
         ));
-        authority_builder.add_rule(constrained_rule("right",
-                Arrays.asList(s("topic"), var("tenant"), var("namespace"), var("topic"), var("operation")),
-                Arrays.asList(pred("topic_operation", Arrays.asList(s("topic"), var("tenant"), var("namespace"), var("topic"), var("operation")))),
+        authority_builder.add_rule(Utils.constrained_rule("right",
+                Arrays.asList(Utils.s("topic"), Utils.var("tenant"), Utils.var("namespace"), Utils.var("topic"), Utils.var("operation")),
+                Arrays.asList(Utils.pred("topic_operation", Arrays.asList(Utils.s("topic"), Utils.var("tenant"), Utils.var("namespace"), Utils.var("topic"), Utils.var("operation")))),
                 Arrays.asList(
                         new Expression.Binary(
                                 Expression.Op.Contains,
-                                new Expression.Value(var("operation")),
+                                new Expression.Value(Utils.var("operation")),
                                 new Expression.Value(new Term.Set(new HashSet<>(Arrays.asList(
-                                        s("lookup")
+                                        Utils.s("lookup")
                                 )))))
                 )
         ));
diff --git a/src/test/java/com/clevercloud/biscuit/builder/parser/ParserTest.java b/src/test/java/org/biscuitsec/biscuit/builder/parser/ParserTest.java
similarity index 69%
rename from src/test/java/com/clevercloud/biscuit/builder/parser/ParserTest.java
rename to src/test/java/org/biscuitsec/biscuit/builder/parser/ParserTest.java
index 2914b719..f912abba 100644
--- a/src/test/java/com/clevercloud/biscuit/builder/parser/ParserTest.java
+++ b/src/test/java/org/biscuitsec/biscuit/builder/parser/ParserTest.java
@@ -1,25 +1,24 @@
-package com.clevercloud.biscuit.builder.parser;
+package org.biscuitsec.biscuit.builder.parser;
 
 import biscuit.format.schema.Schema;
-import com.clevercloud.biscuit.crypto.PublicKey;
-import com.clevercloud.biscuit.datalog.SymbolTable;
-import com.clevercloud.biscuit.datalog.TemporarySymbolTable;
-import com.clevercloud.biscuit.datalog.expressions.Op;
-import com.clevercloud.biscuit.token.builder.*;
-import com.clevercloud.biscuit.token.builder.parser.Error;
-import com.clevercloud.biscuit.token.builder.parser.Parser;
+import org.biscuitsec.biscuit.crypto.PublicKey;
+import org.biscuitsec.biscuit.datalog.SymbolTable;
+import org.biscuitsec.biscuit.datalog.TemporarySymbolTable;
+import org.biscuitsec.biscuit.datalog.expressions.Op;
+import org.biscuitsec.biscuit.token.builder.parser.Error;
+import org.biscuitsec.biscuit.token.builder.parser.Parser;
 import io.vavr.Tuple2;
 import io.vavr.control.Either;
 import io.vavr.control.Option;
+import org.biscuitsec.biscuit.token.builder.*;
+import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
-import static com.clevercloud.biscuit.datalog.Check.Kind.One;
+import static org.biscuitsec.biscuit.datalog.Check.Kind.One;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 import java.util.*;
 
-import static com.clevercloud.biscuit.token.builder.Utils.*;
-
 class ParserTest {
 
     @Test
@@ -31,16 +30,16 @@ void testName() {
     @Test
     void testString() {
         Either<Error, Tuple2<String, Term.Str>> res = Parser.string("\"file1 a hello - 123_\"");
-        assertEquals(Either.right(new Tuple2<>("", (Term.Str) string("file1 a hello - 123_"))), res);
+        assertEquals(Either.right(new Tuple2<>("", (Term.Str) Utils.string("file1 a hello - 123_"))), res);
     }
 
     @Test
     void testInteger() {
         Either<Error, Tuple2<String, Term.Integer>> res = Parser.integer("123");
-        assertEquals(Either.right(new Tuple2<>("", (Term.Integer) integer(123))), res);
+        assertEquals(Either.right(new Tuple2<>("", (Term.Integer) Utils.integer(123))), res);
 
         Either<Error, Tuple2<String, Term.Integer>> res2 = Parser.integer("-42");
-        assertEquals(Either.right(new Tuple2<>("", (Term.Integer) integer(-42))), res2);
+        assertEquals(Either.right(new Tuple2<>("", (Term.Integer) Utils.integer(-42))), res2);
     }
 
     @Test
@@ -52,14 +51,14 @@ void testDate() {
     @Test
     void testVariable() {
         Either<Error, Tuple2<String, Term.Variable>> res = Parser.variable("$name");
-        assertEquals(Either.right(new Tuple2<>("", (Term.Variable) var("name"))), res);
+        assertEquals(Either.right(new Tuple2<>("", (Term.Variable) Utils.var("name"))), res);
     }
 
     @Test
-    void testFact() throws com.clevercloud.biscuit.error.Error.Language {
+    void testFact() throws org.biscuitsec.biscuit.error.Error.Language {
         Either<Error, Tuple2<String, Fact>> res = Parser.fact("right( \"file1\", \"read\" )");
         assertEquals(Either.right(new Tuple2<>("",
-                fact("right", Arrays.asList(string("file1"), s("read"))))),
+                Utils.fact("right", Arrays.asList(Utils.string("file1"), Utils.s("read"))))),
                 res);
 
         Either<Error, Tuple2<String, Fact>> res2 = Parser.fact("right( $var, \"read\" )");
@@ -68,12 +67,12 @@ void testFact() throws com.clevercloud.biscuit.error.Error.Language {
 
         Either<Error, Tuple2<String, Fact>> res3 = Parser.fact("date(2019-12-02T13:49:53Z)");
         assertEquals(Either.right(new Tuple2<>("",
-                        fact("date", List.of(new Term.Date(1575294593))))),
+                        Utils.fact("date", List.of(new Term.Date(1575294593))))),
                 res3);
 
         Either<Error, Tuple2<String, Fact>> res4 = Parser.fact("n1:right( \"file1\", \"read\" )");
         assertEquals(Either.right(new Tuple2<>("",
-                        fact("n1:right", Arrays.asList(string("file1"), s("read"))))),
+                        Utils.fact("n1:right", Arrays.asList(Utils.string("file1"), Utils.s("read"))))),
                 res4);
     }
 
@@ -82,11 +81,11 @@ void testRule() {
         Either<Error, Tuple2<String, Rule>> res =
                 Parser.rule("right($resource, \"read\") <- resource($resource), operation(\"read\")");
         assertEquals(Either.right(new Tuple2<>("",
-                        rule("right",
-                                Arrays.asList(var("resource"), s("read")),
+                        Utils.rule("right",
+                                Arrays.asList(Utils.var("resource"), Utils.s("read")),
                                 Arrays.asList(
-                                        pred("resource", List.of(var("resource"))),
-                                        pred("operation", List.of(s("read"))))
+                                        Utils.pred("resource", List.of(Utils.var("resource"))),
+                                        Utils.pred("operation", List.of(Utils.s("read"))))
                         ))),
                 res);
     }
@@ -96,16 +95,16 @@ void testRuleWithExpression() {
             Either<Error, Tuple2<String, Rule>> res =
                 Parser.rule("valid_date(\"file1\") <- time($0 ), resource( \"file1\"), $0 <= 2019-12-04T09:46:41Z");
         assertEquals(Either.right(new Tuple2<>("",
-                        constrained_rule("valid_date",
-                                List.of(string("file1")),
+                        Utils.constrained_rule("valid_date",
+                                List.of(Utils.string("file1")),
                                 Arrays.asList(
-                                        pred("time", List.of(var("0"))),
-                                        pred("resource", List.of(string("file1")))
+                                        Utils.pred("time", List.of(Utils.var("0"))),
+                                        Utils.pred("resource", List.of(Utils.string("file1")))
                                         ),
                                 List.of(
                                         new Expression.Binary(
                                                 Expression.Op.LessOrEqual,
-                                                new Expression.Value(var("0")),
+                                                new Expression.Value(Utils.var("0")),
                                                 new Expression.Value(new Term.Date(1575452801)))
                                 )
                         ))),
@@ -117,16 +116,16 @@ void testRuleWithExpressionOrdering() {
         Either<Error, Tuple2<String, Rule>> res =
                 Parser.rule("valid_date(\"file1\") <- time($0 ), $0 <= 2019-12-04T09:46:41Z, resource(\"file1\")");
         assertEquals(Either.right(new Tuple2<>("",
-                        constrained_rule("valid_date",
-                                List.of(string("file1")),
+                        Utils.constrained_rule("valid_date",
+                                List.of(Utils.string("file1")),
                                 Arrays.asList(
-                                        pred("time", List.of(var("0"))),
-                                        pred("resource", List.of(string("file1")))
+                                        Utils.pred("time", List.of(Utils.var("0"))),
+                                        Utils.pred("resource", List.of(Utils.string("file1")))
                                 ),
                                 List.of(
                                         new Expression.Binary(
                                                 Expression.Op.LessOrEqual,
-                                                new Expression.Value(var("0")),
+                                                new Expression.Value(Utils.var("0")),
                                                 new Expression.Value(new Term.Date(1575452801)))
                                 )
                         ))),
@@ -153,10 +152,10 @@ void testRuleWithScope() {
                         new Rule(
                                 new Predicate(
                                         "valid_date",
-                                        List.of(string("file1")
+                                        List.of(Utils.string("file1")
                                         )),
                                 Arrays.asList(
-                                        pred("resource", List.of(string("file1")))
+                                        Utils.pred("resource", List.of(Utils.string("file1")))
                                 ),
                                 new ArrayList(),
                                 Arrays.asList(
@@ -174,17 +173,17 @@ void testCheck() {
         assertEquals(Either.right(new Tuple2<>("", new Check(
                 One,
                 Arrays.asList(
-                    rule("query",
+                    Utils.rule("query",
                             new ArrayList<>(),
                             Arrays.asList(
-                                    pred("resource", List.of(var("0"))),
-                                    pred("operation", List.of(s("read")))
+                                    Utils.pred("resource", List.of(Utils.var("0"))),
+                                    Utils.pred("operation", List.of(Utils.s("read")))
                             )
                     ),
-                    rule("query",
+                    Utils.rule("query",
                             new ArrayList<>(),
                             List.of(
-                                    pred("admin", List.of())
+                                    Utils.pred("admin", List.of())
                             )
                     )
                     )))),
@@ -197,7 +196,7 @@ void testExpression() {
                 Parser.expression(" -1 ");
 
         assertEquals(new Tuple2<String, Expression>("",
-                new Expression.Value(integer(-1))),
+                new Expression.Value(Utils.integer(-1))),
                 res.get());
 
         Either<Error, Tuple2<String, Expression>> res2 =
@@ -206,7 +205,7 @@ void testExpression() {
         assertEquals(new Tuple2<String, Expression>("",
                         new Expression.Binary(
                                 Expression.Op.LessOrEqual,
-                                new Expression.Value(var("0")),
+                                new Expression.Value(Utils.var("0")),
                                 new Expression.Value(new Term.Date(1575452801)))),
                 res2.get());
 
@@ -216,11 +215,11 @@ void testExpression() {
         assertEquals(Either.right(new Tuple2<String, Expression>("",
                         new Expression.Binary(
                                 Expression.Op.LessThan,
-                                new Expression.Value(integer(1)),
+                                new Expression.Value(Utils.integer(1)),
                                 new Expression.Binary(
                                         Expression.Op.Add,
-                                        new Expression.Value(var("test")),
-                                        new Expression.Value(integer(2))
+                                        new Expression.Value(Utils.var("test")),
+                                        new Expression.Value(Utils.integer(2))
                                 )
                         )
                 )),
@@ -228,11 +227,11 @@ void testExpression() {
 
         SymbolTable s3 = new SymbolTable();
         long test = s3.insert("test");
-        assertEquals(
+        Assertions.assertEquals(
                 Arrays.asList(
-                        new Op.Value(new com.clevercloud.biscuit.datalog.Term.Integer(1)),
-                        new Op.Value(new com.clevercloud.biscuit.datalog.Term.Variable(test)),
-                        new Op.Value(new com.clevercloud.biscuit.datalog.Term.Integer(2)),
+                        new Op.Value(new org.biscuitsec.biscuit.datalog.Term.Integer(1)),
+                        new Op.Value(new org.biscuitsec.biscuit.datalog.Term.Variable(test)),
+                        new Op.Value(new org.biscuitsec.biscuit.datalog.Term.Integer(2)),
                         new Op.Binary(Op.BinaryOp.Add),
                         new Op.Binary(Op.BinaryOp.LessThan)
                 ),
@@ -249,13 +248,13 @@ void testExpression() {
                                         Expression.Op.And,
                                         new Expression.Binary(
                                                 Expression.Op.LessThan,
-                                                new Expression.Value(integer(2)),
-                                                new Expression.Value(var("test"))
+                                                new Expression.Value(Utils.integer(2)),
+                                                new Expression.Value(Utils.var("test"))
                                         ),
                                         new Expression.Binary(
                                                 Expression.Op.Prefix,
-                                                new Expression.Value(var("var2")),
-                                                new Expression.Value(string("test"))
+                                                new Expression.Value(Utils.var("var2")),
+                                                new Expression.Value(Utils.string("test"))
                                         )
                                 ),
                                 new Expression.Value(new Term.Bool(true))
@@ -267,14 +266,14 @@ void testExpression() {
                 Parser.expression("  [ \"abc\", \"def\" ].contains($operation) ");
 
         HashSet<Term> s = new HashSet<>();
-        s.add(s("abc"));
-        s.add(s("def"));
+        s.add(Utils.s("abc"));
+        s.add(Utils.s("def"));
 
         assertEquals(Either.right(new Tuple2<String, Expression>("",
                         new Expression.Binary(
                                 Expression.Op.Contains,
-                                new Expression.Value(set(s)),
-                                new Expression.Value(var("operation"))
+                                new Expression.Value(Utils.set(s)),
+                                new Expression.Value(Utils.var("operation"))
                         )
                 )),
                 res5);
@@ -288,11 +287,11 @@ void testParens() {
         assertEquals(Either.right(new Tuple2<String, Expression>("",
                         new Expression.Binary(
                                 Expression.Op.Add,
-                                new Expression.Value(integer(1)),
+                                new Expression.Value(Utils.integer(1)),
                                 new Expression.Binary(
                                         Expression.Op.Mul,
-                                        new Expression.Value(integer(2)),
-                                        new Expression.Value(integer(3))
+                                        new Expression.Value(Utils.integer(2)),
+                                        new Expression.Value(Utils.integer(3))
                                 )
                         )
                 )),
@@ -301,22 +300,22 @@ void testParens() {
         Expression e = res.get()._2;
         SymbolTable s = new SymbolTable();
 
-        com.clevercloud.biscuit.datalog.expressions.Expression ex = e.convert(s);
+        org.biscuitsec.biscuit.datalog.expressions.Expression ex = e.convert(s);
 
         assertEquals(
                 Arrays.asList(
-                        new Op.Value(new com.clevercloud.biscuit.datalog.Term.Integer(1)),
-                        new Op.Value(new com.clevercloud.biscuit.datalog.Term.Integer(2)),
-                        new Op.Value(new com.clevercloud.biscuit.datalog.Term.Integer(3)),
+                        new Op.Value(new org.biscuitsec.biscuit.datalog.Term.Integer(1)),
+                        new Op.Value(new org.biscuitsec.biscuit.datalog.Term.Integer(2)),
+                        new Op.Value(new org.biscuitsec.biscuit.datalog.Term.Integer(3)),
                         new Op.Binary(Op.BinaryOp.Mul),
                         new Op.Binary(Op.BinaryOp.Add)
                 ),
                 ex.getOps()
         );
 
-        Map<Long,com.clevercloud.biscuit.datalog.Term> variables = new HashMap<>();
-        Option<com.clevercloud.biscuit.datalog.Term> value = ex.evaluate(variables, new TemporarySymbolTable(s));
-        assertEquals(Option.some(new com.clevercloud.biscuit.datalog.Term.Integer(7)), value);
+        Map<Long, org.biscuitsec.biscuit.datalog.Term> variables = new HashMap<>();
+        Option<org.biscuitsec.biscuit.datalog.Term> value = ex.evaluate(variables, new TemporarySymbolTable(s));
+        assertEquals(Option.some(new org.biscuitsec.biscuit.datalog.Term.Integer(7)), value);
         assertEquals("1 + 2 * 3", ex.print(s).get());
 
 
@@ -330,11 +329,11 @@ void testParens() {
                                         Expression.Op.Parens,
                                         new Expression.Binary(
                                                 Expression.Op.Add,
-                                                new Expression.Value(integer(1)),
-                                                new Expression.Value(integer(2))
+                                                new Expression.Value(Utils.integer(1)),
+                                                new Expression.Value(Utils.integer(2))
                                         ))
                                 ,
-                                new Expression.Value(integer(3))
+                                new Expression.Value(Utils.integer(3))
                         )
                 )),
                 res2);
@@ -342,23 +341,23 @@ void testParens() {
         Expression e2 = res2.get()._2;
         SymbolTable s2 = new SymbolTable();
 
-        com.clevercloud.biscuit.datalog.expressions.Expression ex2 = e2.convert(s2);
+        org.biscuitsec.biscuit.datalog.expressions.Expression ex2 = e2.convert(s2);
 
         assertEquals(
                 Arrays.asList(
-                        new Op.Value(new com.clevercloud.biscuit.datalog.Term.Integer(1)),
-                        new Op.Value(new com.clevercloud.biscuit.datalog.Term.Integer(2)),
+                        new Op.Value(new org.biscuitsec.biscuit.datalog.Term.Integer(1)),
+                        new Op.Value(new org.biscuitsec.biscuit.datalog.Term.Integer(2)),
                         new Op.Binary(Op.BinaryOp.Add),
                         new Op.Unary(Op.UnaryOp.Parens),
-                        new Op.Value(new com.clevercloud.biscuit.datalog.Term.Integer(3)),
+                        new Op.Value(new org.biscuitsec.biscuit.datalog.Term.Integer(3)),
                         new Op.Binary(Op.BinaryOp.Mul)
                 ),
                 ex2.getOps()
         );
 
-        Map<Long,com.clevercloud.biscuit.datalog.Term> variables2 = new HashMap<>();
-        Option<com.clevercloud.biscuit.datalog.Term> value2 = ex2.evaluate(variables2, new TemporarySymbolTable(s2));
-        assertEquals(Option.some(new com.clevercloud.biscuit.datalog.Term.Integer(9)), value2);
+        Map<Long, org.biscuitsec.biscuit.datalog.Term> variables2 = new HashMap<>();
+        Option<org.biscuitsec.biscuit.datalog.Term> value2 = ex2.evaluate(variables2, new TemporarySymbolTable(s2));
+        assertEquals(Option.some(new org.biscuitsec.biscuit.datalog.Term.Integer(9)), value2);
         assertEquals("(1 + 2) * 3", ex2.print(s2).get());
     }
 }
\ No newline at end of file
diff --git a/src/test/java/com/clevercloud/biscuit/crypto/SignatureTest.java b/src/test/java/org/biscuitsec/biscuit/crypto/SignatureTest.java
similarity index 97%
rename from src/test/java/com/clevercloud/biscuit/crypto/SignatureTest.java
rename to src/test/java/org/biscuitsec/biscuit/crypto/SignatureTest.java
index f95b1677..26a1d69d 100644
--- a/src/test/java/com/clevercloud/biscuit/crypto/SignatureTest.java
+++ b/src/test/java/org/biscuitsec/biscuit/crypto/SignatureTest.java
@@ -1,4 +1,4 @@
-package com.clevercloud.biscuit.crypto;
+package org.biscuitsec.biscuit.crypto;
 
 import biscuit.format.schema.Schema;
 
@@ -10,11 +10,10 @@
 import static io.vavr.API.Left;
 import static io.vavr.API.Right;
 
+import org.biscuitsec.biscuit.error.Error;
 import org.junit.jupiter.api.Test;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
-import com.clevercloud.biscuit.error.Error;
-
 /**
  * @serial exclude
  */
diff --git a/src/test/java/com/clevercloud/biscuit/datalog/ExpressionTest.java b/src/test/java/org/biscuitsec/biscuit/datalog/ExpressionTest.java
similarity index 95%
rename from src/test/java/com/clevercloud/biscuit/datalog/ExpressionTest.java
rename to src/test/java/org/biscuitsec/biscuit/datalog/ExpressionTest.java
index bb671ae8..fa773b2e 100644
--- a/src/test/java/com/clevercloud/biscuit/datalog/ExpressionTest.java
+++ b/src/test/java/org/biscuitsec/biscuit/datalog/ExpressionTest.java
@@ -1,7 +1,7 @@
-package com.clevercloud.biscuit.datalog;
+package org.biscuitsec.biscuit.datalog;
 
-import com.clevercloud.biscuit.datalog.expressions.Expression;
-import com.clevercloud.biscuit.datalog.expressions.Op;
+import org.biscuitsec.biscuit.datalog.expressions.Expression;
+import org.biscuitsec.biscuit.datalog.expressions.Op;
 import org.junit.jupiter.api.Test;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
diff --git a/src/test/java/com/clevercloud/biscuit/datalog/WorldTest.java b/src/test/java/org/biscuitsec/biscuit/datalog/WorldTest.java
similarity index 99%
rename from src/test/java/com/clevercloud/biscuit/datalog/WorldTest.java
rename to src/test/java/org/biscuitsec/biscuit/datalog/WorldTest.java
index 6c25f4a7..f0331d20 100644
--- a/src/test/java/com/clevercloud/biscuit/datalog/WorldTest.java
+++ b/src/test/java/org/biscuitsec/biscuit/datalog/WorldTest.java
@@ -1,8 +1,8 @@
-package com.clevercloud.biscuit.datalog;
+package org.biscuitsec.biscuit.datalog;
 
-import com.clevercloud.biscuit.datalog.expressions.Expression;
-import com.clevercloud.biscuit.datalog.expressions.Op;
-import com.clevercloud.biscuit.error.Error;
+import org.biscuitsec.biscuit.datalog.expressions.Expression;
+import org.biscuitsec.biscuit.datalog.expressions.Op;
+import org.biscuitsec.biscuit.error.Error;
 import org.junit.jupiter.api.Test;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
diff --git a/src/test/java/com/clevercloud/biscuit/token/AuthorizerTest.java b/src/test/java/org/biscuitsec/biscuit/token/AuthorizerTest.java
similarity index 86%
rename from src/test/java/com/clevercloud/biscuit/token/AuthorizerTest.java
rename to src/test/java/org/biscuitsec/biscuit/token/AuthorizerTest.java
index c4d47f02..9c5f4b50 100644
--- a/src/test/java/com/clevercloud/biscuit/token/AuthorizerTest.java
+++ b/src/test/java/org/biscuitsec/biscuit/token/AuthorizerTest.java
@@ -1,9 +1,10 @@
-package com.clevercloud.biscuit.token;
+package org.biscuitsec.biscuit.token;
 
-import com.clevercloud.biscuit.crypto.KeyPair;
-import com.clevercloud.biscuit.error.Error.Parser;
-import com.clevercloud.biscuit.token.builder.Expression;
-import com.clevercloud.biscuit.token.builder.Term;
+import org.biscuitsec.biscuit.crypto.KeyPair;
+import org.biscuitsec.biscuit.error.Error;
+import org.biscuitsec.biscuit.error.Error.Parser;
+import org.biscuitsec.biscuit.token.builder.Expression;
+import org.biscuitsec.biscuit.token.builder.Term;
 import org.junit.jupiter.api.Test;
 
 import java.util.ArrayList;
@@ -11,7 +12,7 @@
 import java.util.List;
 import java.util.Set;
 
-import static com.clevercloud.biscuit.token.builder.Utils.constrained_rule;
+import static org.biscuitsec.biscuit.token.builder.Utils.constrained_rule;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class AuthorizerTest {
@@ -71,7 +72,7 @@ public void testPuttingSomeFactsInABiscuitAndGettingThemBackOutAgain() throws Ex
         );
     }
 
-    private static Term queryFirstResult(Authorizer authorizer, String query) throws com.clevercloud.biscuit.error.Error {
+    private static Term queryFirstResult(Authorizer authorizer, String query) throws Error {
         return authorizer.query(query)
                 .iterator()
                 .next()
diff --git a/src/test/java/com/clevercloud/biscuit/token/BiscuitTest.java b/src/test/java/org/biscuitsec/biscuit/token/BiscuitTest.java
similarity index 95%
rename from src/test/java/com/clevercloud/biscuit/token/BiscuitTest.java
rename to src/test/java/org/biscuitsec/biscuit/token/BiscuitTest.java
index fca634b5..60575130 100644
--- a/src/test/java/com/clevercloud/biscuit/token/BiscuitTest.java
+++ b/src/test/java/org/biscuitsec/biscuit/token/BiscuitTest.java
@@ -1,14 +1,14 @@
-package com.clevercloud.biscuit.token;
-
-import com.clevercloud.biscuit.crypto.KeyDelegate;
-import com.clevercloud.biscuit.crypto.KeyPair;
-import com.clevercloud.biscuit.crypto.PublicKey;
-import com.clevercloud.biscuit.datalog.RunLimits;
-import com.clevercloud.biscuit.datalog.SymbolTable;
-import com.clevercloud.biscuit.error.Error;
-import com.clevercloud.biscuit.error.FailedCheck;
-import com.clevercloud.biscuit.error.LogicError;
-import com.clevercloud.biscuit.token.builder.Block;
+package org.biscuitsec.biscuit.token;
+
+import org.biscuitsec.biscuit.crypto.KeyDelegate;
+import org.biscuitsec.biscuit.crypto.KeyPair;
+import org.biscuitsec.biscuit.crypto.PublicKey;
+import org.biscuitsec.biscuit.datalog.RunLimits;
+import org.biscuitsec.biscuit.datalog.SymbolTable;
+import org.biscuitsec.biscuit.error.Error;
+import org.biscuitsec.biscuit.error.FailedCheck;
+import org.biscuitsec.biscuit.error.LogicError;
+import org.biscuitsec.biscuit.token.builder.Block;
 
 import io.vavr.control.Option;
 import io.vavr.control.Try;
@@ -24,8 +24,8 @@
 import java.time.Instant;
 import java.util.*;
 
-import static com.clevercloud.biscuit.crypto.TokenSignature.hex;
-import static com.clevercloud.biscuit.token.builder.Utils.*;
+import static org.biscuitsec.biscuit.crypto.TokenSignature.hex;
+import static org.biscuitsec.biscuit.token.builder.Utils.*;
 
 public class BiscuitTest {
 
@@ -164,7 +164,7 @@ public void testFolders() throws NoSuchAlgorithmException, SignatureException, I
 
         KeyPair root = new KeyPair(rng);
 
-        com.clevercloud.biscuit.token.builder.Biscuit builder = Biscuit.builder(rng, root);
+        org.biscuitsec.biscuit.token.builder.Biscuit builder = Biscuit.builder(rng, root);
 
         builder.add_right("/folder1/file1", "read");
         builder.add_right("/folder1/file1", "write");
@@ -260,7 +260,7 @@ public void testReset() throws NoSuchAlgorithmException, SignatureException, Inv
 
         KeyPair root = new KeyPair(rng);
 
-        com.clevercloud.biscuit.token.builder.Biscuit builder = Biscuit.builder(rng, root);
+        org.biscuitsec.biscuit.token.builder.Biscuit builder = Biscuit.builder(rng, root);
 
         builder.add_right("/folder1/file1", "read");
         builder.add_right("/folder1/file1", "write");
@@ -329,7 +329,7 @@ public void testEmptyAuthorizer() throws NoSuchAlgorithmException, SignatureExce
 
         KeyPair root = new KeyPair(rng);
 
-        com.clevercloud.biscuit.token.builder.Biscuit builder = Biscuit.builder(rng, root);
+        org.biscuitsec.biscuit.token.builder.Biscuit builder = Biscuit.builder(rng, root);
 
         builder.add_right("/folder1/file1", "read");
         builder.add_right("/folder1/file1", "write");
@@ -497,7 +497,7 @@ public void testBasicWithNamespacesWithAddAuthorityFact() throws NoSuchAlgorithm
         KeyPair root = new KeyPair(rng);
 
         SymbolTable symbols = Biscuit.default_symbol_table();
-        com.clevercloud.biscuit.token.builder.Biscuit o = new com.clevercloud.biscuit.token.builder.Biscuit(rng, root, symbols);
+        org.biscuitsec.biscuit.token.builder.Biscuit o = new org.biscuitsec.biscuit.token.builder.Biscuit(rng, root, symbols);
         o.add_authority_fact("namespace:right(\"file1\",\"read\")");
         o.add_authority_fact("namespace:right(\"file1\",\"write\")");
         o.add_authority_fact("namespace:right(\"file2\",\"read\")");
@@ -650,7 +650,7 @@ public Option<PublicKey> root_key(Option<Integer> key_id) {
         });
 
 
-        assertThrows(com.clevercloud.biscuit.error.Error.FormatError.Signature.InvalidSignature.class, () -> {
+        assertThrows(Error.FormatError.Signature.InvalidSignature.class, () -> {
             Biscuit deser = Biscuit.from_bytes(data, new KeyDelegate() {
                 @Override
                 public Option<PublicKey> root_key(Option<Integer> key_id) {
diff --git a/src/test/java/com/clevercloud/biscuit/token/ExampleTest.java b/src/test/java/org/biscuitsec/biscuit/token/ExampleTest.java
similarity index 89%
rename from src/test/java/com/clevercloud/biscuit/token/ExampleTest.java
rename to src/test/java/org/biscuitsec/biscuit/token/ExampleTest.java
index aea687e3..eb6fdc9b 100644
--- a/src/test/java/com/clevercloud/biscuit/token/ExampleTest.java
+++ b/src/test/java/org/biscuitsec/biscuit/token/ExampleTest.java
@@ -1,8 +1,8 @@
-package com.clevercloud.biscuit.token;
+package org.biscuitsec.biscuit.token;
 
-import com.clevercloud.biscuit.crypto.KeyPair;
-import com.clevercloud.biscuit.error.Error;
-import com.clevercloud.biscuit.token.builder.Block;
+import org.biscuitsec.biscuit.crypto.KeyPair;
+import org.biscuitsec.biscuit.error.Error;
+import org.biscuitsec.biscuit.token.builder.Block;
 
 import java.security.InvalidKeyException;
 import java.security.NoSuchAlgorithmException;
diff --git a/src/test/java/com/clevercloud/biscuit/token/SamplesJsonV2Test.java b/src/test/java/org/biscuitsec/biscuit/token/SamplesJsonV2Test.java
similarity index 96%
rename from src/test/java/com/clevercloud/biscuit/token/SamplesJsonV2Test.java
rename to src/test/java/org/biscuitsec/biscuit/token/SamplesJsonV2Test.java
index 8e172db5..d0586a5c 100644
--- a/src/test/java/com/clevercloud/biscuit/token/SamplesJsonV2Test.java
+++ b/src/test/java/org/biscuitsec/biscuit/token/SamplesJsonV2Test.java
@@ -1,10 +1,10 @@
-package com.clevercloud.biscuit.token;
+package org.biscuitsec.biscuit.token;
 
 import biscuit.format.schema.Schema;
-import com.clevercloud.biscuit.crypto.KeyPair;
-import com.clevercloud.biscuit.crypto.PublicKey;
-import com.clevercloud.biscuit.datalog.RunLimits;
-import com.clevercloud.biscuit.error.Error;
+import org.biscuitsec.biscuit.crypto.KeyPair;
+import org.biscuitsec.biscuit.crypto.PublicKey;
+import org.biscuitsec.biscuit.datalog.RunLimits;
+import org.biscuitsec.biscuit.error.Error;
 import com.google.gson.Gson;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
diff --git a/src/test/java/com/clevercloud/biscuit/token/SamplesV2Test.java b/src/test/java/org/biscuitsec/biscuit/token/SamplesV2Test.java
similarity index 97%
rename from src/test/java/com/clevercloud/biscuit/token/SamplesV2Test.java
rename to src/test/java/org/biscuitsec/biscuit/token/SamplesV2Test.java
index 9fc14b51..1f120bda 100644
--- a/src/test/java/com/clevercloud/biscuit/token/SamplesV2Test.java
+++ b/src/test/java/org/biscuitsec/biscuit/token/SamplesV2Test.java
@@ -1,18 +1,18 @@
-package com.clevercloud.biscuit.token;
+package org.biscuitsec.biscuit.token;
 
 import biscuit.format.schema.Schema;
-import com.clevercloud.biscuit.crypto.PublicKey;
-import com.clevercloud.biscuit.datalog.RunLimits;
-import com.clevercloud.biscuit.error.Error;
-import com.clevercloud.biscuit.error.FailedCheck;
-import com.clevercloud.biscuit.error.LogicError;
-import com.clevercloud.biscuit.token.builder.Check;
-import com.clevercloud.biscuit.token.builder.Rule;
+import org.biscuitsec.biscuit.crypto.PublicKey;
+import org.biscuitsec.biscuit.datalog.RunLimits;
+import org.biscuitsec.biscuit.error.Error;
+import org.biscuitsec.biscuit.error.FailedCheck;
+import org.biscuitsec.biscuit.error.LogicError;
+import org.biscuitsec.biscuit.token.builder.Check;
+import org.biscuitsec.biscuit.token.builder.Rule;
 import io.vavr.control.Try;
 
 import org.junit.jupiter.api.Test;
 
-import static com.clevercloud.biscuit.datalog.Check.Kind.One;
+import static org.biscuitsec.biscuit.datalog.Check.Kind.One;
 import static org.junit.jupiter.api.Assertions.*;
 
 import java.io.IOException;
@@ -24,8 +24,8 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 
-import static com.clevercloud.biscuit.crypto.TokenSignature.fromHex;
-import static com.clevercloud.biscuit.token.builder.Utils.*;
+import static org.biscuitsec.biscuit.crypto.TokenSignature.fromHex;
+import static org.biscuitsec.biscuit.token.builder.Utils.*;
 
 
 public class SamplesV2Test {
diff --git a/src/test/java/com/clevercloud/biscuit/token/UnverifiedBiscuitTest.java b/src/test/java/org/biscuitsec/biscuit/token/UnverifiedBiscuitTest.java
similarity index 76%
rename from src/test/java/com/clevercloud/biscuit/token/UnverifiedBiscuitTest.java
rename to src/test/java/org/biscuitsec/biscuit/token/UnverifiedBiscuitTest.java
index 566bf56f..555b25df 100644
--- a/src/test/java/com/clevercloud/biscuit/token/UnverifiedBiscuitTest.java
+++ b/src/test/java/org/biscuitsec/biscuit/token/UnverifiedBiscuitTest.java
@@ -1,13 +1,13 @@
-package com.clevercloud.biscuit.token;
-
-import com.clevercloud.biscuit.crypto.KeyPair;
-import com.clevercloud.biscuit.datalog.Fact;
-import com.clevercloud.biscuit.datalog.RunLimits;
-import com.clevercloud.biscuit.datalog.SymbolTable;
-import com.clevercloud.biscuit.error.Error;
-import com.clevercloud.biscuit.error.FailedCheck;
-import com.clevercloud.biscuit.error.LogicError;
-import com.clevercloud.biscuit.token.builder.Block;
+package org.biscuitsec.biscuit.token;
+
+import org.biscuitsec.biscuit.crypto.KeyPair;
+import org.biscuitsec.biscuit.datalog.RunLimits;
+import org.biscuitsec.biscuit.datalog.SymbolTable;
+import org.biscuitsec.biscuit.error.Error;
+import org.biscuitsec.biscuit.error.FailedCheck;
+import org.biscuitsec.biscuit.error.LogicError;
+import org.biscuitsec.biscuit.token.builder.Block;
+import org.biscuitsec.biscuit.token.builder.Utils;
 import org.junit.jupiter.api.Test;
 
 import java.security.InvalidKeyException;
@@ -15,12 +15,9 @@
 import java.security.SecureRandom;
 import java.security.SignatureException;
 import java.time.Duration;
-import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.HashMap;
 import java.util.List;
 
-import static com.clevercloud.biscuit.token.builder.Utils.*;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.fail;
 
@@ -36,10 +33,10 @@ public void testBasic() throws Error, NoSuchAlgorithmException, SignatureExcepti
         KeyPair keypair0 = new KeyPair(rng);
 
         SymbolTable symbols = Biscuit.default_symbol_table();
-        Block block0 = new Block(0, symbols);
-        block0.add_fact(fact("right", List.of(s("file1"), s("read"))));
-        block0.add_fact(fact("right", List.of(s("file2"), s("read"))));
-        block0.add_fact(fact("right", List.of(s("file1"), s("write"))));
+        org.biscuitsec.biscuit.token.builder.Block block0 = new org.biscuitsec.biscuit.token.builder.Block(0, symbols);
+        block0.add_fact(Utils.fact("right", List.of(Utils.s("file1"), Utils.s("read"))));
+        block0.add_fact(Utils.fact("right", List.of(Utils.s("file2"), Utils.s("read"))));
+        block0.add_fact(Utils.fact("right", List.of(Utils.s("file1"), Utils.s("write"))));
 
         Biscuit biscuit0 = Biscuit.make(rng, keypair0, Biscuit.default_symbol_table(), block0.build());
 
@@ -60,14 +57,14 @@ public void testBasic() throws Error, NoSuchAlgorithmException, SignatureExcepti
         System.out.println("preparing the second block");
 
         KeyPair keypair1 = new KeyPair(rng);
-        Block block1 = deser0.create_block();
-        block1.add_check(check(rule(
+        org.biscuitsec.biscuit.token.builder.Block block1 = deser0.create_block();
+        block1.add_check(Utils.check(Utils.rule(
                 "caveat1",
-                List.of(var("resource")),
+                List.of(Utils.var("resource")),
                 List.of(
-                        pred("resource", List.of(var("resource"))),
-                        pred("operation", List.of(s("read"))),
-                        pred("right", List.of(var("resource"), s("read")))
+                        Utils.pred("resource", List.of(Utils.var("resource"))),
+                        Utils.pred("operation", List.of(Utils.s("read"))),
+                        Utils.pred("right", List.of(Utils.var("resource"), Utils.s("read")))
                 )
         )));
         UnverifiedBiscuit unverifiedBiscuit1 = deser0.attenuate(rng, keypair1, block1.build());
@@ -93,11 +90,11 @@ public void testBasic() throws Error, NoSuchAlgorithmException, SignatureExcepti
         KeyPair keypair2 = new KeyPair(rng);
 
         Block block2 = unverifiedBiscuit1.create_block();
-        block2.add_check(check(rule(
+        block2.add_check(Utils.check(Utils.rule(
                 "caveat2",
-                List.of(s("file1")),
+                List.of(Utils.s("file1")),
                 List.of(
-                        pred("resource", List.of(s("file1")))
+                        Utils.pred("resource", List.of(Utils.s("file1")))
                 )
         )));
 
