diff --git a/Java/README.md b/Java/README.md
new file mode 100644
index 0000000..56ce0f8
--- /dev/null
+++ b/Java/README.md
@@ -0,0 +1,82 @@
+## Installation
+
+You can use the LonaDB Java Client by adding it as a dependency in your Maven project. Follow these steps to include LonaDB in your project:
+
+1. Add the GitHub Packages repository to your `pom.xml` file:
+
+```xml
+
+
+ github
+ GitHub Packages
+ https://maven.pkg.github.com/LonaDB/Clients
+
+
+```
+
+2. Add the LonaDB dependency to your `pom.xml` file:
+
+```xml
+
+
+ org.lona-development.java-client
+ lonadb
+ 2.1.3
+
+
+```
+
+## Usage
+
+To use the `LonaDB` Java Client, follow these steps:
+
+1. Import the `LonaDB` class in your Java file:
+
+```java
+import org.lona_development.java_client.lonadb;
+```
+
+2. Create an instance of the `lonadb` class by providing the required connection details:
+
+```java
+lonadb client = new lonadb(host, port, name, password);
+```
+
+Replace `host`, `port`, `name`, and `password` with the appropriate values for your LonaDB Server.
+
+3. Use the provided methods to interact with the server:
+
+```java
+// Example: Get a list of tables
+String tables = client.getTables("username");
+
+// Display the list of tables
+System.out.println(tables);
+```
+
+## Available Methods
+
+The following methods are available in the `LonaDB` Java Client:
+
+- `getTables(username)`: Retrieves a list of tables available in the database.
+- `getTableData(table)`: Retrieves data from a specified table.
+- `deleteTable(name)`: Deletes a table by its name.
+- `createTable(name)`: Creates a new table with the given name.
+- `set(table, name, value)`: Sets a variable within a table to the specified value.
+- `delete(table, name)`: Deletes a variable from a table.
+- `get(table, name)`: Retrieves the value of a variable from a table.
+- `getUsers()`: Retrieves a list of users in the database.
+- `createUser(name, password)`: Creates a new user with the given name and password.
+- `deleteUser(name)`: Deletes a user by their name.
+- `checkPassword(name, password)`: Checks if the provided password is correct for a given user.
+- `checkPermission(user, permission)`: Checks if a user has a specific permission.
+- `removePermission(user, permission)`: Removes a permission from a user.
+- `getPermissionsRaw(name)`: Retrieves the raw permission data for a user.
+- `addPermission(user, permission)`: Adds a permission to a user.
+- `createFunction(name, content)`: Create a function which can be executed whenever you want. Just like eval. Content = string of Java code.
+- `executeFunction(name)`: Executes the function.
+- `eval(function)`: Runs the function (must be a string of Java code).
+
+## License
+
+This project is licensed under the GNU Affero General Public License version 3 (GNU AGPL-3.0).
\ No newline at end of file
diff --git a/Java/pom.xml b/Java/pom.xml
index 84920c9..7e1975e 100644
--- a/Java/pom.xml
+++ b/Java/pom.xml
@@ -11,7 +11,7 @@
org.lona-development.java-client
- LonaDB
+ lonadb
2.1.3
@@ -42,4 +42,13 @@
+
+
+
+ github
+ GitHub Packages
+ https://maven.pkg.github.com/LonaDB/Clients
+
+
+
diff --git a/Java/src/main/java/org/lona_development/java_client/LonaDB.java b/Java/src/main/java/org/lona_development/java_client/lonadb.java
similarity index 98%
rename from Java/src/main/java/org/lona_development/java_client/LonaDB.java
rename to Java/src/main/java/org/lona_development/java_client/lonadb.java
index f482fcc..f7dabf9 100644
--- a/Java/src/main/java/org/lona_development/java_client/LonaDB.java
+++ b/Java/src/main/java/org/lona_development/java_client/lonadb.java
@@ -6,13 +6,13 @@ import javax.crypto.*;
import javax.crypto.spec.*;
import java.security.*;
-public class LonaDB {
+public class lonadb {
private String host;
private int port;
private String name;
private String password;
- public LonaDB(String host, int port, String name, String password) {
+ public lonadb(String host, int port, String name, String password) {
this.host = host;
this.port = port;
this.name = name;