Repository: relayrides/pushy
Pull request #741 (2020-02-08 18:18:35)

Prepare for change in project ownership
Friends, as those of you who subscribe to the [mailing list](https://groups.google.com/forum/#!forum/pushy-apns) may already know, we'll be transferring ownership of Pushy as a project from Turo as an organization to me directly in the near future. For more context and discussion, please see https://groups.google.com/d/msg/pushy-apns/U-CZdMiuMMI/0EeUhiWDBQAJ.

This set of changes does most—but not all—of the things we'll need to do to move Pushy to a new home soon. Notably, it does _not_ change the Maven coordinates for project artifacts in the various README files. To avoid confusion, we'll cover that once we've done a new release after the transfer.

I'll plan to merge this soon; please give a shout if you have any questions or concerns in the meantime!

filiphr: I am reading this one just now.  Would be interesting to where the project can grow in the future.

Anyways, I just wanted to say thank you for taking up the project and continuing the work you do with Pushy
jchambers: >  Would be interesting to where the project can grow in the future.

I'm happy to share some thoughts! Could you give me a little more direction, though? What's on your mind?
filiphr: >Could you give me a little more direction, though? What's on your mind?

We are not that heavy users of the library, so I don't have many ideas. The current API for building the APNs client is really good and we were able to customize it to our needs quite easily. 

Here are some topics from me personally:

## Spring Boot

It might be interesting to know how the others from the community are using this. We are heavy Spring Boot users, so we needed to wrap it in an auto configuration in order to configure it via properties. From my point of view providing a Spring Boot auto configuration might be a good thing. However, this completely depends on the community, if there isn't big demand it doesn't make sense to go in that direction.

If there is interested into this I can see if we can do a contribution with the auto configuration.

## Integration

There are some issues from me personally. Those are mostly feedback and enhancement that could be done to make the integration a bit easier. However, I have to say again the API is quite permissive, so we could easily integrate what we needed.

## Reactive Stack

We are not really using it. However, I know that there is some push in that direction currently. Pushy is already more or less ready since it uses `Future`(s) (I think I am not that well versed in the internals)
jchambers: @filiphr These all sound like important ideas, and I'd love to learn more about them. Would you mind raising these on the [mailing list](https://groups.google.com/d/forum/pushy-apns)? I'd hate for a robust discussion about future features to get lost because the pull request where they were raised got merged/closed.

Thanks!

Patch:
diff --git a/LICENSE.md b/LICENSE.md
index d919972e..b1afb139 100644
--- a/LICENSE.md
+++ b/LICENSE.md
@@ -1,5 +1,5 @@
 The MIT License (MIT)
-Copyright (c) 2016 Turo
+Copyright (c) 2020 Jon Chambers
 
 Permission is hereby granted, free of charge, to any person obtaining a copy of
 this software and associated documentation files (the "Software"), to deal in
diff --git a/README.md b/README.md
index 45c3d552..7a3fedb8 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
 [![Build Status](https://travis-ci.org/relayrides/pushy.svg?branch=master)](https://travis-ci.org/relayrides/pushy)
 [![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.turo/pushy/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.turo/pushy)
 
-Pushy is a Java library for sending [APNs](https://developer.apple.com/documentation/usernotifications) (iOS, macOS, and Safari) push notifications. It is written and maintained by the engineers at [Turo](https://turo.com/).
+Pushy is a Java library for sending [APNs](https://developer.apple.com/documentation/usernotifications) (iOS, macOS, and Safari) push notifications.
 
 Pushy sends push notifications using Apple's HTTP/2-based APNs protocol and supports both TLS and token-based authentication. It distinguishes itself from other push notification libraries with a focus on [thorough documentation](https://pushy-apns.org/apidocs/0.13/index.html?overview-summary.html), asynchronous operation, and design for industrial-scale operation; with Pushy, it's easy and efficient to maintain multiple parallel connections to the APNs gateway to send large numbers of notifications to many different applications ("topics").
 
@@ -243,4 +243,4 @@ Callers may also provide a [`MockApnsServerListener`](https://pushy-apns.org/api
 
 Pushy is available under the [MIT License](https://github.com/relayrides/pushy/blob/master/LICENSE.md).
 
-The current version of Pushy is 0.13.10. We consider it to be fully functional (and use it in production!), but the public API may change significantly before a 1.0 release.
+The current version of Pushy is 0.13.10. It's fully functional and widely used in production environments, but the public API may change significantly before a 1.0 release.
diff --git a/benchmark/pom.xml b/benchmark/pom.xml
index dd1149b6..58065627 100644
--- a/benchmark/pom.xml
+++ b/benchmark/pom.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-  Copyright (c) 2013-2017 Turo
+  Copyright (c) 2020 Jon Chambers
 
   Permission is hereby granted, free of charge, to any person obtaining a copy
   of this software and associated documentation files (the "Software"), to deal
@@ -26,7 +26,7 @@
 
     <parent>
         <artifactId>pushy-parent</artifactId>
-        <groupId>com.turo</groupId>
+        <groupId>com.eatthepath</groupId>
         <version>0.13.11-SNAPSHOT</version>
     </parent>
 
diff --git a/benchmark/src/main/java/com/turo/pushy/apns/ApnsClientBenchmark.java b/benchmark/src/main/java/com/eatthepath/pushy/apns/ApnsClientBenchmark.java
similarity index 94%
rename from benchmark/src/main/java/com/turo/pushy/apns/ApnsClientBenchmark.java
rename to benchmark/src/main/java/com/eatthepath/pushy/apns/ApnsClientBenchmark.java
index e7fd3d80..5bd8594a 100644
--- a/benchmark/src/main/java/com/turo/pushy/apns/ApnsClientBenchmark.java
+++ b/benchmark/src/main/java/com/eatthepath/pushy/apns/ApnsClientBenchmark.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,13 +20,13 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
 
-import com.turo.pushy.apns.auth.ApnsSigningKey;
-import com.turo.pushy.apns.server.BenchmarkApnsServer;
-import com.turo.pushy.apns.server.BenchmarkApnsServerBuilder;
-import com.turo.pushy.apns.util.ApnsPayloadBuilder;
-import com.turo.pushy.apns.util.SimpleApnsPushNotification;
+import com.eatthepath.pushy.apns.auth.ApnsSigningKey;
+import com.eatthepath.pushy.apns.server.BenchmarkApnsServer;
+import com.eatthepath.pushy.apns.server.BenchmarkApnsServerBuilder;
+import com.eatthepath.pushy.apns.util.ApnsPayloadBuilder;
+import com.eatthepath.pushy.apns.util.SimpleApnsPushNotification;
 import io.netty.channel.nio.NioEventLoopGroup;
 import io.netty.util.concurrent.Future;
 import io.netty.util.concurrent.GenericFutureListener;
diff --git a/benchmark/src/main/java/com/turo/pushy/apns/util/ApnsPayloadBuilderBenchmark.java b/benchmark/src/main/java/com/eatthepath/pushy/apns/util/ApnsPayloadBuilderBenchmark.java
similarity index 97%
rename from benchmark/src/main/java/com/turo/pushy/apns/util/ApnsPayloadBuilderBenchmark.java
rename to benchmark/src/main/java/com/eatthepath/pushy/apns/util/ApnsPayloadBuilderBenchmark.java
index 7c4b7798..667ce80c 100644
--- a/benchmark/src/main/java/com/turo/pushy/apns/util/ApnsPayloadBuilderBenchmark.java
+++ b/benchmark/src/main/java/com/eatthepath/pushy/apns/util/ApnsPayloadBuilderBenchmark.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.util;
+package com.eatthepath.pushy.apns.util;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/dropwizard-metrics-listener/pom.xml b/dropwizard-metrics-listener/pom.xml
index 04f7101d..2d3d09e8 100644
--- a/dropwizard-metrics-listener/pom.xml
+++ b/dropwizard-metrics-listener/pom.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!--
-  Copyright (c) 2013-2017 Turo
+  Copyright (c) 2020 Jon Chambers
 
   Permission is hereby granted, free of charge, to any person obtaining a copy
   of this software and associated documentation files (the "Software"), to deal
@@ -30,7 +30,7 @@
     <description>A metrics listener for Pushy that uses the Dropwizard Metrics library for gathering and reporting metrics.</description>
 
     <parent>
-        <groupId>com.turo</groupId>
+        <groupId>com.eatthepath</groupId>
         <artifactId>pushy-parent</artifactId>
         <version>0.13.11-SNAPSHOT</version>
     </parent>
diff --git a/dropwizard-metrics-listener/src/main/java/com/turo/pushy/apns/metrics/dropwizard/DropwizardApnsClientMetricsListener.java b/dropwizard-metrics-listener/src/main/java/com/eatthepath/pushy/apns/metrics/dropwizard/DropwizardApnsClientMetricsListener.java
similarity index 98%
rename from dropwizard-metrics-listener/src/main/java/com/turo/pushy/apns/metrics/dropwizard/DropwizardApnsClientMetricsListener.java
rename to dropwizard-metrics-listener/src/main/java/com/eatthepath/pushy/apns/metrics/dropwizard/DropwizardApnsClientMetricsListener.java
index f596d499..1ad9bc08 100644
--- a/dropwizard-metrics-listener/src/main/java/com/turo/pushy/apns/metrics/dropwizard/DropwizardApnsClientMetricsListener.java
+++ b/dropwizard-metrics-listener/src/main/java/com/eatthepath/pushy/apns/metrics/dropwizard/DropwizardApnsClientMetricsListener.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,11 +20,11 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.metrics.dropwizard;
+package com.eatthepath.pushy.apns.metrics.dropwizard;
 
 import com.codahale.metrics.*;
-import com.turo.pushy.apns.ApnsClient;
-import com.turo.pushy.apns.ApnsClientMetricsListener;
+import com.eatthepath.pushy.apns.ApnsClient;
+import com.eatthepath.pushy.apns.ApnsClientMetricsListener;
 
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
diff --git a/dropwizard-metrics-listener/src/main/java/com/turo/pushy/apns/metrics/dropwizard/package-info.java b/dropwizard-metrics-listener/src/main/java/com/eatthepath/pushy/apns/metrics/dropwizard/package-info.java
similarity index 86%
rename from dropwizard-metrics-listener/src/main/java/com/turo/pushy/apns/metrics/dropwizard/package-info.java
rename to dropwizard-metrics-listener/src/main/java/com/eatthepath/pushy/apns/metrics/dropwizard/package-info.java
index ff708b4f..bcb07a6b 100644
--- a/dropwizard-metrics-listener/src/main/java/com/turo/pushy/apns/metrics/dropwizard/package-info.java
+++ b/dropwizard-metrics-listener/src/main/java/com/eatthepath/pushy/apns/metrics/dropwizard/package-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -21,10 +21,10 @@
  */
 
 /**
- * <p>Provides a concrete implementation of the {@link com.turo.pushy.apns.ApnsClientMetricsListener} interface
+ * <p>Provides a concrete implementation of the {@link com.eatthepath.pushy.apns.ApnsClientMetricsListener} interface
  * that gathers and reports metrics using the <a href="http://metrics.dropwizard.io/3.1.0/">Dropwizard Metrics
  * library</a>.</p>
  *
  * @author <a href="https://github.com/jchambers">Jon Chambers</a>
  */
-package com.turo.pushy.apns.metrics.dropwizard;
+package com.eatthepath.pushy.apns.metrics.dropwizard;
diff --git a/dropwizard-metrics-listener/src/main/java/overview.html b/dropwizard-metrics-listener/src/main/java/overview.html
index 79306732..ba348f8d 100644
--- a/dropwizard-metrics-listener/src/main/java/overview.html
+++ b/dropwizard-metrics-listener/src/main/java/overview.html
@@ -1,5 +1,5 @@
 <!--
-  Copyright (c) 2013-2017 Turo
+  Copyright (c) 2020 Jon Chambers
 
   Permission is hereby granted, free of charge, to any person obtaining a copy
   of this software and associated documentation files (the "Software"), to deal
diff --git a/micrometer-metrics-listener/pom.xml b/micrometer-metrics-listener/pom.xml
index dd76e330..eafdf6ca 100644
--- a/micrometer-metrics-listener/pom.xml
+++ b/micrometer-metrics-listener/pom.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-  Copyright (c) 2013-2018 Turo
+  Copyright (c) 2020 Jon Chambers
 
   Permission is hereby granted, free of charge, to any person obtaining a copy
   of this software and associated documentation files (the "Software"), to deal
@@ -30,7 +30,7 @@
 
     <parent>
         <artifactId>pushy-parent</artifactId>
-        <groupId>com.turo</groupId>
+        <groupId>com.eatthepath</groupId>
         <version>0.13.11-SNAPSHOT</version>
     </parent>
 
diff --git a/micrometer-metrics-listener/src/main/java/com/turo/pushy/apns/metrics/micrometer/MicrometerApnsClientMetricsListener.java b/micrometer-metrics-listener/src/main/java/com/eatthepath/pushy/apns/metrics/micrometer/MicrometerApnsClientMetricsListener.java
similarity index 98%
rename from micrometer-metrics-listener/src/main/java/com/turo/pushy/apns/metrics/micrometer/MicrometerApnsClientMetricsListener.java
rename to micrometer-metrics-listener/src/main/java/com/eatthepath/pushy/apns/metrics/micrometer/MicrometerApnsClientMetricsListener.java
index 36434d6e..12c604e5 100644
--- a/micrometer-metrics-listener/src/main/java/com/turo/pushy/apns/metrics/micrometer/MicrometerApnsClientMetricsListener.java
+++ b/micrometer-metrics-listener/src/main/java/com/eatthepath/pushy/apns/metrics/micrometer/MicrometerApnsClientMetricsListener.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2018 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,10 +20,10 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.metrics.micrometer;
+package com.eatthepath.pushy.apns.metrics.micrometer;
 
-import com.turo.pushy.apns.ApnsClient;
-import com.turo.pushy.apns.ApnsClientMetricsListener;
+import com.eatthepath.pushy.apns.ApnsClient;
+import com.eatthepath.pushy.apns.ApnsClientMetricsListener;
 import io.micrometer.core.instrument.*;
 
 import java.util.List;
diff --git a/micrometer-metrics-listener/src/main/java/com/turo/pushy/apns/metrics/micrometer/package-info.java b/micrometer-metrics-listener/src/main/java/com/eatthepath/pushy/apns/metrics/micrometer/package-info.java
similarity index 86%
rename from micrometer-metrics-listener/src/main/java/com/turo/pushy/apns/metrics/micrometer/package-info.java
rename to micrometer-metrics-listener/src/main/java/com/eatthepath/pushy/apns/metrics/micrometer/package-info.java
index 4d259eec..cca218b1 100644
--- a/micrometer-metrics-listener/src/main/java/com/turo/pushy/apns/metrics/micrometer/package-info.java
+++ b/micrometer-metrics-listener/src/main/java/com/eatthepath/pushy/apns/metrics/micrometer/package-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2018 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -21,10 +21,10 @@
  */
 
 /**
- * <p>Provides a concrete implementation of the {@link com.turo.pushy.apns.ApnsClientMetricsListener} interface
+ * <p>Provides a concrete implementation of the {@link com.eatthepath.pushy.apns.ApnsClientMetricsListener} interface
  * that gathers and reports metrics using the <a href="http://micrometer.io/">Micrometer application monitoring
  * library</a>.</p>
  *
  * @author <a href="https://github.com/jchambers">Jon Chambers</a>
  */
-package com.turo.pushy.apns.metrics.micrometer;
+package com.eatthepath.pushy.apns.metrics.micrometer;
diff --git a/micrometer-metrics-listener/src/main/java/overview.html b/micrometer-metrics-listener/src/main/java/overview.html
index 3afa9629..3fd41a5d 100644
--- a/micrometer-metrics-listener/src/main/java/overview.html
+++ b/micrometer-metrics-listener/src/main/java/overview.html
@@ -1,5 +1,5 @@
 <!--
-  Copyright (c) 2013-2018 Turo
+  Copyright (c) 2020 Jon Chambers
 
   Permission is hereby granted, free of charge, to any person obtaining a copy
   of this software and associated documentation files (the "Software"), to deal
diff --git a/pom.xml b/pom.xml
index 5abdf227..16d42b54 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-  Copyright (c) 2013-2017 Turo
+  Copyright (c) 2020 Jon Chambers
 
   Permission is hereby granted, free of charge, to any person obtaining a copy
   of this software and associated documentation files (the "Software"), to deal
@@ -24,7 +24,7 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
-    <groupId>com.turo</groupId>
+    <groupId>com.eatthepath</groupId>
     <artifactId>pushy-parent</artifactId>
     <packaging>pom</packaging>
     <version>0.13.11-SNAPSHOT</version>
diff --git a/pushy/pom.xml b/pushy/pom.xml
index 973c7d56..123add3c 100644
--- a/pushy/pom.xml
+++ b/pushy/pom.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!--
-  Copyright (c) 2013-2017 Turo
+  Copyright (c) 2020 Jon Chambers
 
   Permission is hereby granted, free of charge, to any person obtaining a copy
   of this software and associated documentation files (the "Software"), to deal
@@ -30,7 +30,7 @@
     <name>Pushy</name>
 
     <parent>
-        <groupId>com.turo</groupId>
+        <groupId>com.eatthepath</groupId>
         <artifactId>pushy-parent</artifactId>
         <version>0.13.11-SNAPSHOT</version>
     </parent>
@@ -135,7 +135,7 @@
                     <properties>
                         <property>
                             <name>listener</name>
-                            <value>com.turo.pushy.apns.PrintTestNameRunListener</value>
+                            <value>com.eatthepath.pushy.apns.PrintTestNameRunListener</value>
                         </property>
                     </properties>
                 </configuration>
@@ -176,7 +176,7 @@
                             <properties>
                                 <property>
                                     <name>listener</name>
-                                    <value>com.turo.pushy.apns.PrintTestNameRunListener</value>
+                                    <value>com.eatthepath.pushy.apns.PrintTestNameRunListener</value>
                                 </property>
                             </properties>
                         </configuration>
diff --git a/pushy/src/main/java/com/turo/pushy/apns/ApnsChannelFactory.java b/pushy/src/main/java/com/eatthepath/pushy/apns/ApnsChannelFactory.java
similarity index 98%
rename from pushy/src/main/java/com/turo/pushy/apns/ApnsChannelFactory.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/ApnsChannelFactory.java
index 5ebf4db4..af020c9d 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/ApnsChannelFactory.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/ApnsChannelFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,10 +20,10 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
 
-import com.turo.pushy.apns.auth.ApnsSigningKey;
-import com.turo.pushy.apns.proxy.ProxyHandlerFactory;
+import com.eatthepath.pushy.apns.auth.ApnsSigningKey;
+import com.eatthepath.pushy.apns.proxy.ProxyHandlerFactory;
 import io.netty.bootstrap.Bootstrap;
 import io.netty.channel.*;
 import io.netty.channel.socket.SocketChannel;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/ApnsChannelPool.java b/pushy/src/main/java/com/eatthepath/pushy/apns/ApnsChannelPool.java
similarity index 99%
rename from pushy/src/main/java/com/turo/pushy/apns/ApnsChannelPool.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/ApnsChannelPool.java
index c493e25a..3d91d324 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/ApnsChannelPool.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/ApnsChannelPool.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
 
 import io.netty.channel.Channel;
 import io.netty.channel.group.ChannelGroup;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/ApnsChannelPoolMetricsListener.java b/pushy/src/main/java/com/eatthepath/pushy/apns/ApnsChannelPoolMetricsListener.java
similarity index 96%
rename from pushy/src/main/java/com/turo/pushy/apns/ApnsChannelPoolMetricsListener.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/ApnsChannelPoolMetricsListener.java
index 56ebe9e0..ae89b9d8 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/ApnsChannelPoolMetricsListener.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/ApnsChannelPoolMetricsListener.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
 
 /**
  * A channel pool metrics listener receives events from an {@link ApnsChannelPool} that can be used to measure the
diff --git a/pushy/src/main/java/com/turo/pushy/apns/ApnsClient.java b/pushy/src/main/java/com/eatthepath/pushy/apns/ApnsClient.java
similarity index 97%
rename from pushy/src/main/java/com/turo/pushy/apns/ApnsClient.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/ApnsClient.java
index 0a03d798..6d3aad55 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/ApnsClient.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/ApnsClient.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,12 +20,12 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
 
-import com.turo.pushy.apns.auth.ApnsSigningKey;
-import com.turo.pushy.apns.proxy.ProxyHandlerFactory;
-import com.turo.pushy.apns.util.concurrent.PushNotificationFuture;
-import com.turo.pushy.apns.util.concurrent.PushNotificationResponseListener;
+import com.eatthepath.pushy.apns.auth.ApnsSigningKey;
+import com.eatthepath.pushy.apns.proxy.ProxyHandlerFactory;
+import com.eatthepath.pushy.apns.util.concurrent.PushNotificationFuture;
+import com.eatthepath.pushy.apns.util.concurrent.PushNotificationResponseListener;
 import io.netty.channel.Channel;
 import io.netty.channel.ChannelFuture;
 import io.netty.channel.EventLoopGroup;
@@ -191,7 +191,7 @@ public class ApnsClient {
      * @return a {@code Future} that will complete when the notification has been either accepted or rejected by the
      * APNs gateway
      *
-     * @see com.turo.pushy.apns.util.concurrent.PushNotificationResponseListener
+     * @see com.eatthepath.pushy.apns.util.concurrent.PushNotificationResponseListener
      *
      * @since 0.8
      */
diff --git a/pushy/src/main/java/com/turo/pushy/apns/ApnsClientBuilder.java b/pushy/src/main/java/com/eatthepath/pushy/apns/ApnsClientBuilder.java
similarity index 98%
rename from pushy/src/main/java/com/turo/pushy/apns/ApnsClientBuilder.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/ApnsClientBuilder.java
index 6bad9742..933e274d 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/ApnsClientBuilder.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/ApnsClientBuilder.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,10 +20,10 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
 
-import com.turo.pushy.apns.auth.ApnsSigningKey;
-import com.turo.pushy.apns.proxy.ProxyHandlerFactory;
+import com.eatthepath.pushy.apns.auth.ApnsSigningKey;
+import com.eatthepath.pushy.apns.proxy.ProxyHandlerFactory;
 import io.netty.channel.EventLoopGroup;
 import io.netty.handler.codec.http2.Http2FrameLogger;
 import io.netty.handler.codec.http2.Http2SecurityUtil;
@@ -456,7 +456,7 @@ public class ApnsClientBuilder {
     /**
      * Sets the amount of idle time (in milliseconds) after which the client under construction will send a PING frame
      * to the APNs server. By default, clients will send a PING frame after
-     * {@value com.turo.pushy.apns.ApnsClientBuilder#DEFAULT_PING_IDLE_TIME_MILLIS} milliseconds of inactivity.
+     * {@value com.eatthepath.pushy.apns.ApnsClientBuilder#DEFAULT_PING_IDLE_TIME_MILLIS} milliseconds of inactivity.
      *
      * @param pingInterval the amount of idle time after which the client will send a PING frame
      * @param pingIntervalUnit the time unit for the given idle time
diff --git a/pushy/src/main/java/com/turo/pushy/apns/ApnsClientHandler.java b/pushy/src/main/java/com/eatthepath/pushy/apns/ApnsClientHandler.java
similarity index 99%
rename from pushy/src/main/java/com/turo/pushy/apns/ApnsClientHandler.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/ApnsClientHandler.java
index 6374f383..94704fed 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/ApnsClientHandler.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/ApnsClientHandler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,12 +20,12 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
 
 import com.eatthepath.uuid.FastUUID;
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
-import com.turo.pushy.apns.util.DateAsTimeSinceEpochTypeAdapter;
+import com.eatthepath.pushy.apns.util.DateAsTimeSinceEpochTypeAdapter;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
 import io.netty.channel.ChannelFuture;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/ApnsClientMetricsListener.java b/pushy/src/main/java/com/eatthepath/pushy/apns/ApnsClientMetricsListener.java
similarity index 98%
rename from pushy/src/main/java/com/turo/pushy/apns/ApnsClientMetricsListener.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/ApnsClientMetricsListener.java
index a4f62a4c..f65d9b1d 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/ApnsClientMetricsListener.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/ApnsClientMetricsListener.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
 
 /**
  * <p>A metrics listener receives events from an {@link ApnsClient} that can be used to measure the performance and
diff --git a/pushy/src/main/java/com/turo/pushy/apns/ApnsPushNotification.java b/pushy/src/main/java/com/eatthepath/pushy/apns/ApnsPushNotification.java
similarity index 97%
rename from pushy/src/main/java/com/turo/pushy/apns/ApnsPushNotification.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/ApnsPushNotification.java
index 6c329b38..3fadecf3 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/ApnsPushNotification.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/ApnsPushNotification.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,9 +20,9 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
 
-import com.turo.pushy.apns.util.ApnsPayloadBuilder;
+import com.eatthepath.pushy.apns.util.ApnsPayloadBuilder;
 
 import java.util.Date;
 import java.util.UUID;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/AugmentingReflectiveChannelFactory.java b/pushy/src/main/java/com/eatthepath/pushy/apns/AugmentingReflectiveChannelFactory.java
similarity index 96%
rename from pushy/src/main/java/com/turo/pushy/apns/AugmentingReflectiveChannelFactory.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/AugmentingReflectiveChannelFactory.java
index 46bdb1f5..5d83f2a2 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/AugmentingReflectiveChannelFactory.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/AugmentingReflectiveChannelFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
 
 import io.netty.channel.Channel;
 import io.netty.channel.ReflectiveChannelFactory;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/ClientChannelClassUtil.java b/pushy/src/main/java/com/eatthepath/pushy/apns/ClientChannelClassUtil.java
similarity index 98%
rename from pushy/src/main/java/com/turo/pushy/apns/ClientChannelClassUtil.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/ClientChannelClassUtil.java
index 577ea1b1..7641aa6e 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/ClientChannelClassUtil.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/ClientChannelClassUtil.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
 
 import io.netty.channel.EventLoopGroup;
 import io.netty.channel.socket.DatagramChannel;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/DeliveryPriority.java b/pushy/src/main/java/com/eatthepath/pushy/apns/DeliveryPriority.java
similarity index 97%
rename from pushy/src/main/java/com/turo/pushy/apns/DeliveryPriority.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/DeliveryPriority.java
index e8ebef0e..0f21018f 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/DeliveryPriority.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/DeliveryPriority.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
 
 /**
  * An enumeration of delivery priorities for APNs push notifications. Note that this priority affects when the
diff --git a/pushy/src/main/java/com/turo/pushy/apns/ErrorResponse.java b/pushy/src/main/java/com/eatthepath/pushy/apns/ErrorResponse.java
similarity index 95%
rename from pushy/src/main/java/com/turo/pushy/apns/ErrorResponse.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/ErrorResponse.java
index 6353fd14..500d79ca 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/ErrorResponse.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/ErrorResponse.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
 
 import java.util.Date;
 
diff --git a/pushy/src/main/java/com/turo/pushy/apns/P12Util.java b/pushy/src/main/java/com/eatthepath/pushy/apns/P12Util.java
similarity index 98%
rename from pushy/src/main/java/com/turo/pushy/apns/P12Util.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/P12Util.java
index ee59d6ac..b01b8f53 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/P12Util.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/P12Util.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
 
 import java.io.IOException;
 import java.io.InputStream;
diff --git a/pushy/src/main/java/com/eatthepath/pushy/apns/PooledObjectFactory.java b/pushy/src/main/java/com/eatthepath/pushy/apns/PooledObjectFactory.java
new file mode 100644
index 00000000..773c6dd3
--- /dev/null
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/PooledObjectFactory.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2020 Jon Chambers
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package com.eatthepath.pushy.apns;
+
+import io.netty.util.concurrent.Future;
+import io.netty.util.concurrent.Promise;
+
+/**
+ * Constructs new objects for use in an asynchronous object pool.
+ *
+ * @param <T> the type of object created by this factory
+ */
+interface PooledObjectFactory <T> {
+
+    /**
+     * Asynchronously creates a new object for use in an asynchronous object pool.
+     *
+     * @param promise a {@code Promise} to be notified when a new pooled object has been created
+     *
+     * @return a {@code Future} that will complete when a new pooled object has been created
+     */
+    Future<T> create(Promise<T> promise);
+
+    /**
+     * Asynchronously destroys an object evicted from an asynchronous object pool.
+     *
+     * @param object the object to destroy
+     * @param promise a {@code Promise} to be notified when the object has been destroyed
+     *
+     * @return a {@code Future} that will complete when the given object has been destroyed
+     */
+    Future<Void> destroy(T object, Promise<Void> promise);
+}
diff --git a/pushy/src/main/java/com/eatthepath/pushy/apns/PushNotificationPromise.java b/pushy/src/main/java/com/eatthepath/pushy/apns/PushNotificationPromise.java
new file mode 100644
index 00000000..1feab73f
--- /dev/null
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/PushNotificationPromise.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2020 Jon Chambers
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package com.eatthepath.pushy.apns;
+
+import com.eatthepath.pushy.apns.util.concurrent.PushNotificationFuture;
+import io.netty.util.concurrent.DefaultPromise;
+import io.netty.util.concurrent.EventExecutor;
+
+class PushNotificationPromise<P extends ApnsPushNotification, V> extends DefaultPromise<V> implements PushNotificationFuture<P, V> {
+
+    private final P pushNotification;
+
+    PushNotificationPromise(final EventExecutor eventExecutor, final P pushNotification) {
+        super(eventExecutor);
+
+        this.pushNotification = pushNotification;
+    }
+
+    @Override
+    public P getPushNotification() {
+        return this.pushNotification;
+    }
+}
diff --git a/pushy/src/main/java/com/turo/pushy/apns/PushNotificationResponse.java b/pushy/src/main/java/com/eatthepath/pushy/apns/PushNotificationResponse.java
similarity index 97%
rename from pushy/src/main/java/com/turo/pushy/apns/PushNotificationResponse.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/PushNotificationResponse.java
index ab3dadd2..ca54aeb2 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/PushNotificationResponse.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/PushNotificationResponse.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
 
 import java.util.Date;
 import java.util.UUID;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/PushType.java b/pushy/src/main/java/com/eatthepath/pushy/apns/PushType.java
similarity index 98%
rename from pushy/src/main/java/com/turo/pushy/apns/PushType.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/PushType.java
index 88791b20..76f0bcfc 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/PushType.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/PushType.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2019 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
 
 /**
  * An enumeration of push notification display types. Note that push notification display types are required in iOS 13
diff --git a/pushy/src/main/java/com/turo/pushy/apns/SimplePushNotificationResponse.java b/pushy/src/main/java/com/eatthepath/pushy/apns/SimplePushNotificationResponse.java
similarity index 97%
rename from pushy/src/main/java/com/turo/pushy/apns/SimplePushNotificationResponse.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/SimplePushNotificationResponse.java
index aa577e6b..12ae73e5 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/SimplePushNotificationResponse.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/SimplePushNotificationResponse.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
 
 import com.eatthepath.uuid.FastUUID;
 
diff --git a/pushy/src/main/java/com/turo/pushy/apns/TokenAuthenticationApnsClientHandler.java b/pushy/src/main/java/com/eatthepath/pushy/apns/TokenAuthenticationApnsClientHandler.java
similarity index 97%
rename from pushy/src/main/java/com/turo/pushy/apns/TokenAuthenticationApnsClientHandler.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/TokenAuthenticationApnsClientHandler.java
index 9a8bff7e..cef5977d 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/TokenAuthenticationApnsClientHandler.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/TokenAuthenticationApnsClientHandler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,10 +20,10 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
 
-import com.turo.pushy.apns.auth.ApnsSigningKey;
-import com.turo.pushy.apns.auth.AuthenticationToken;
+import com.eatthepath.pushy.apns.auth.ApnsSigningKey;
+import com.eatthepath.pushy.apns.auth.AuthenticationToken;
 import io.netty.channel.ChannelHandlerContext;
 import io.netty.handler.codec.http2.Http2ConnectionDecoder;
 import io.netty.handler.codec.http2.Http2ConnectionEncoder;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/auth/ApnsKey.java b/pushy/src/main/java/com/eatthepath/pushy/apns/auth/ApnsKey.java
similarity index 98%
rename from pushy/src/main/java/com/turo/pushy/apns/auth/ApnsKey.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/auth/ApnsKey.java
index b56d814e..8b1f0990 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/auth/ApnsKey.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/auth/ApnsKey.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.auth;
+package com.eatthepath.pushy.apns.auth;
 
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/auth/ApnsSigningKey.java b/pushy/src/main/java/com/eatthepath/pushy/apns/auth/ApnsSigningKey.java
similarity index 98%
rename from pushy/src/main/java/com/turo/pushy/apns/auth/ApnsSigningKey.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/auth/ApnsSigningKey.java
index dcfb2002..b64861a7 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/auth/ApnsSigningKey.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/auth/ApnsSigningKey.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.auth;
+package com.eatthepath.pushy.apns.auth;
 
 import java.io.*;
 import java.math.BigInteger;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/auth/ApnsVerificationKey.java b/pushy/src/main/java/com/eatthepath/pushy/apns/auth/ApnsVerificationKey.java
similarity index 98%
rename from pushy/src/main/java/com/turo/pushy/apns/auth/ApnsVerificationKey.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/auth/ApnsVerificationKey.java
index 1936ce0c..46bcdaa4 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/auth/ApnsVerificationKey.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/auth/ApnsVerificationKey.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,9 +20,9 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.auth;
+package com.eatthepath.pushy.apns.auth;
 
-import com.turo.pushy.apns.ApnsClient;
+import com.eatthepath.pushy.apns.ApnsClient;
 
 import java.io.*;
 import java.security.InvalidKeyException;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/auth/AuthenticationToken.java b/pushy/src/main/java/com/eatthepath/pushy/apns/auth/AuthenticationToken.java
similarity index 96%
rename from pushy/src/main/java/com/turo/pushy/apns/auth/AuthenticationToken.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/auth/AuthenticationToken.java
index efe0f08f..4eaaffce 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/auth/AuthenticationToken.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/auth/AuthenticationToken.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,12 +20,12 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.auth;
+package com.eatthepath.pushy.apns.auth;
 
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import com.google.gson.annotations.SerializedName;
-import com.turo.pushy.apns.util.DateAsTimeSinceEpochTypeAdapter;
+import com.eatthepath.pushy.apns.util.DateAsTimeSinceEpochTypeAdapter;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
 import io.netty.handler.codec.base64.Base64;
@@ -50,7 +50,7 @@ import java.util.concurrent.TimeUnit;
  *
  * <p>When clients use token-based authentication, they send an authentication token with each push notification. Tokens
  * may expire, in which case clients must discard the old token and generate a new one. Callers generally do
- * <em>not</em> need to interact with authentication tokens directly; {@link com.turo.pushy.apns.ApnsClient} instances
+ * <em>not</em> need to interact with authentication tokens directly; {@link com.eatthepath.pushy.apns.ApnsClient} instances
  * using token-based authentication will manage authentication tokens automatically.</p>
  *
  * <p>Tokens may be constructed from an {@link ApnsSigningKey} (for clients sending notifications) or from a
@@ -61,7 +61,7 @@ import java.util.concurrent.TimeUnit;
  * @see <a href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/establishing_a_token_based_connection_to_apns">Establishing a Token-Based Connection to APNs</a>
  * @see <a href="https://tools.ietf.org/html/rfc7519">RFC 7519 - JSON Web Token (JWT)</a>
  *
- * @see com.turo.pushy.apns.ApnsClientBuilder#setSigningKey(ApnsSigningKey)
+ * @see com.eatthepath.pushy.apns.ApnsClientBuilder#setSigningKey(ApnsSigningKey)
  */
 public class AuthenticationToken {
 
@@ -126,7 +126,7 @@ public class AuthenticationToken {
      * @param issuedAt the time at which the token was issued
      *
      * @throws NoSuchAlgorithmException if the JVM doesn't support the
-     * {@value com.turo.pushy.apns.auth.ApnsKey#APNS_SIGNATURE_ALGORITHM} algorithm
+     * {@value com.eatthepath.pushy.apns.auth.ApnsKey#APNS_SIGNATURE_ALGORITHM} algorithm
      * @throws InvalidKeyException if the given key was invalid for any reason
      * @throws SignatureException if the given key could not be used to sign the token
      */
@@ -215,7 +215,7 @@ public class AuthenticationToken {
      * @return {@code true} if this token's signature was verified or {@code false} otherwise
      *
      * @throws NoSuchAlgorithmException if the JVM doesn't support the
-     * {@value com.turo.pushy.apns.auth.ApnsKey#APNS_SIGNATURE_ALGORITHM} algorithm
+     * {@value com.eatthepath.pushy.apns.auth.ApnsKey#APNS_SIGNATURE_ALGORITHM} algorithm
      * @throws InvalidKeyException if the given key was invalid for any reason
      * @throws SignatureException if the given key could not be used to verify the token's signature
      */
diff --git a/pushy/src/main/java/com/turo/pushy/apns/auth/package-info.java b/pushy/src/main/java/com/eatthepath/pushy/apns/auth/package-info.java
similarity index 76%
rename from pushy/src/main/java/com/turo/pushy/apns/auth/package-info.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/auth/package-info.java
index f395922e..0f2cb481 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/auth/package-info.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/auth/package-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -22,10 +22,10 @@
 
 /**
  * <p>Contains classes for working with APNs keys. Keys are used in token-based authentication. Callers will generally
- * use the {@link com.turo.pushy.apns.auth.ApnsSigningKey} class to provide signing credentials to clients. An
- * {@link com.turo.pushy.apns.auth.ApnsVerificationKey} class is also provided for callers that need to build
- * integration tests using the {@link com.turo.pushy.apns.server.MockApnsServer}.</p>
+ * use the {@link com.eatthepath.pushy.apns.auth.ApnsSigningKey} class to provide signing credentials to clients. An
+ * {@link com.eatthepath.pushy.apns.auth.ApnsVerificationKey} class is also provided for callers that need to build
+ * integration tests using the {@link com.eatthepath.pushy.apns.server.MockApnsServer}.</p>
  *
  * @author <a href="https://github.com/jchambers">Jon Chambers</a>
  */
-package com.turo.pushy.apns.auth;
+package com.eatthepath.pushy.apns.auth;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/package-info.java b/pushy/src/main/java/com/eatthepath/pushy/apns/package-info.java
similarity index 80%
rename from pushy/src/main/java/com/turo/pushy/apns/package-info.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/package-info.java
index 6c98c02d..ea8932cc 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/package-info.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/package-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -23,15 +23,15 @@
 /**
  * <p>Contains classes and interfaces for interacting with the Apple Push Notification service (APNs).</p>
  *
- * <p>Callers will primarily interact with the {@link com.turo.pushy.apns.ApnsClient} class to send push
+ * <p>Callers will primarily interact with the {@link com.eatthepath.pushy.apns.ApnsClient} class to send push
  * notifications. An {@code ApnsClient} maintains a single connection to the APNs gateway and sends notifications using
  * the HTTP/2-based APNs protocol. Notifications are sent asynchronously.</p>
  *
- * <p>The {@link com.turo.pushy.apns.ApnsPushNotification} interface represents a single APNs push notification
+ * <p>The {@link com.eatthepath.pushy.apns.ApnsPushNotification} interface represents a single APNs push notification
  * sent to a single device. A simple concrete implementation of the {@code ApnsPushNotification} interface
- * ({@link com.turo.pushy.apns.util.SimpleApnsPushNotification}) and tools for constructing push notification
+ * ({@link com.eatthepath.pushy.apns.util.SimpleApnsPushNotification}) and tools for constructing push notification
  * payloads can be found in the {@code com.relayrides.pushy.apns.util} package.</p>
  *
  * @author <a href="https://github.com/jchambers">Jon Chambers</a>
  */
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/proxy/HttpProxyHandlerFactory.java b/pushy/src/main/java/com/eatthepath/pushy/apns/proxy/HttpProxyHandlerFactory.java
similarity index 97%
rename from pushy/src/main/java/com/turo/pushy/apns/proxy/HttpProxyHandlerFactory.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/proxy/HttpProxyHandlerFactory.java
index 9545cbc1..fb68dbd2 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/proxy/HttpProxyHandlerFactory.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/proxy/HttpProxyHandlerFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.proxy;
+package com.eatthepath.pushy.apns.proxy;
 
 import java.net.SocketAddress;
 
diff --git a/pushy/src/main/java/com/turo/pushy/apns/proxy/ProxyHandlerFactory.java b/pushy/src/main/java/com/eatthepath/pushy/apns/proxy/ProxyHandlerFactory.java
similarity index 92%
rename from pushy/src/main/java/com/turo/pushy/apns/proxy/ProxyHandlerFactory.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/proxy/ProxyHandlerFactory.java
index 12885441..f6be97c4 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/proxy/ProxyHandlerFactory.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/proxy/ProxyHandlerFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,9 +20,9 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.proxy;
+package com.eatthepath.pushy.apns.proxy;
 
-import com.turo.pushy.apns.ApnsClient;
+import com.eatthepath.pushy.apns.ApnsClient;
 
 import io.netty.handler.proxy.ProxyHandler;
 
diff --git a/pushy/src/main/java/com/turo/pushy/apns/proxy/Socks4ProxyHandlerFactory.java b/pushy/src/main/java/com/eatthepath/pushy/apns/proxy/Socks4ProxyHandlerFactory.java
similarity index 97%
rename from pushy/src/main/java/com/turo/pushy/apns/proxy/Socks4ProxyHandlerFactory.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/proxy/Socks4ProxyHandlerFactory.java
index 13ee0e6b..34f26989 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/proxy/Socks4ProxyHandlerFactory.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/proxy/Socks4ProxyHandlerFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.proxy;
+package com.eatthepath.pushy.apns.proxy;
 
 import java.net.SocketAddress;
 
diff --git a/pushy/src/main/java/com/turo/pushy/apns/proxy/Socks5ProxyHandlerFactory.java b/pushy/src/main/java/com/eatthepath/pushy/apns/proxy/Socks5ProxyHandlerFactory.java
similarity index 97%
rename from pushy/src/main/java/com/turo/pushy/apns/proxy/Socks5ProxyHandlerFactory.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/proxy/Socks5ProxyHandlerFactory.java
index 2e13b017..99cfb37a 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/proxy/Socks5ProxyHandlerFactory.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/proxy/Socks5ProxyHandlerFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.proxy;
+package com.eatthepath.pushy.apns.proxy;
 
 import java.net.SocketAddress;
 
diff --git a/pushy/src/main/java/com/turo/pushy/apns/proxy/package-info.java b/pushy/src/main/java/com/eatthepath/pushy/apns/proxy/package-info.java
similarity index 78%
rename from pushy/src/main/java/com/turo/pushy/apns/proxy/package-info.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/proxy/package-info.java
index fd392de2..e6a81862 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/proxy/package-info.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/proxy/package-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -23,13 +23,13 @@
 /**
  * <p>Contains classes and interfaces for working with proxies.</p>
  *
- * <p>While {@link com.turo.pushy.apns.ApnsClient}s will connect to an APNs server directly by default, they may
+ * <p>While {@link com.eatthepath.pushy.apns.ApnsClient}s will connect to an APNs server directly by default, they may
  * optionally be configured to connect through a proxy by setting a
- * {@link com.turo.pushy.apns.proxy.ProxyHandlerFactory} via the
- * {@link com.turo.pushy.apns.ApnsClientBuilder#setProxyHandlerFactory(ProxyHandlerFactory)} method. Proxy handler
+ * {@link com.eatthepath.pushy.apns.proxy.ProxyHandlerFactory} via the
+ * {@link com.eatthepath.pushy.apns.ApnsClientBuilder#setProxyHandlerFactory(ProxyHandlerFactory)} method. Proxy handler
  * factory implementations are provided for HTTP, SOCKS4, and SOCKS5 proxies.</p>
  *
  * @author <a href="mailto:jon@relayrides.com">Jon Chambers</a>
  */
-package com.turo.pushy.apns.proxy;
+package com.eatthepath.pushy.apns.proxy;
 
diff --git a/pushy/src/main/java/com/turo/pushy/apns/server/AcceptAllPushNotificationHandlerFactory.java b/pushy/src/main/java/com/eatthepath/pushy/apns/server/AcceptAllPushNotificationHandlerFactory.java
similarity index 96%
rename from pushy/src/main/java/com/turo/pushy/apns/server/AcceptAllPushNotificationHandlerFactory.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/server/AcceptAllPushNotificationHandlerFactory.java
index 8893b92b..49387f1c 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/server/AcceptAllPushNotificationHandlerFactory.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/server/AcceptAllPushNotificationHandlerFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
 
 import io.netty.buffer.ByteBuf;
 import io.netty.handler.codec.http2.Http2Headers;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/server/BaseHttp2Server.java b/pushy/src/main/java/com/eatthepath/pushy/apns/server/BaseHttp2Server.java
similarity index 99%
rename from pushy/src/main/java/com/turo/pushy/apns/server/BaseHttp2Server.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/server/BaseHttp2Server.java
index 24cfa68f..4fe5cdbf 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/server/BaseHttp2Server.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/server/BaseHttp2Server.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2018 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
 
 import io.netty.bootstrap.ServerBootstrap;
 import io.netty.channel.*;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/server/BaseHttp2ServerBuilder.java b/pushy/src/main/java/com/eatthepath/pushy/apns/server/BaseHttp2ServerBuilder.java
similarity index 99%
rename from pushy/src/main/java/com/turo/pushy/apns/server/BaseHttp2ServerBuilder.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/server/BaseHttp2ServerBuilder.java
index 4408f17a..dfc7f03e 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/server/BaseHttp2ServerBuilder.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/server/BaseHttp2ServerBuilder.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2018 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
 
 import io.netty.channel.EventLoopGroup;
 import io.netty.handler.codec.http2.Http2SecurityUtil;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/server/BenchmarkApnsServer.java b/pushy/src/main/java/com/eatthepath/pushy/apns/server/BenchmarkApnsServer.java
similarity index 97%
rename from pushy/src/main/java/com/turo/pushy/apns/server/BenchmarkApnsServer.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/server/BenchmarkApnsServer.java
index 2dd96ae8..2b609b99 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/server/BenchmarkApnsServer.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/server/BenchmarkApnsServer.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2018 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
 
 import io.netty.channel.ChannelPipeline;
 import io.netty.channel.EventLoopGroup;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/server/BenchmarkApnsServerBuilder.java b/pushy/src/main/java/com/eatthepath/pushy/apns/server/BenchmarkApnsServerBuilder.java
similarity index 98%
rename from pushy/src/main/java/com/turo/pushy/apns/server/BenchmarkApnsServerBuilder.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/server/BenchmarkApnsServerBuilder.java
index ea261899..72ab6c2e 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/server/BenchmarkApnsServerBuilder.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/server/BenchmarkApnsServerBuilder.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2018 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
 
 import io.netty.channel.EventLoopGroup;
 import io.netty.handler.ssl.SslContext;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/server/BenchmarkApnsServerHandler.java b/pushy/src/main/java/com/eatthepath/pushy/apns/server/BenchmarkApnsServerHandler.java
similarity index 98%
rename from pushy/src/main/java/com/turo/pushy/apns/server/BenchmarkApnsServerHandler.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/server/BenchmarkApnsServerHandler.java
index 9230a394..f921d8b4 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/server/BenchmarkApnsServerHandler.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/server/BenchmarkApnsServerHandler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2018 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
 
 import io.netty.buffer.ByteBuf;
 import io.netty.channel.ChannelHandlerContext;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/server/MockApnsServer.java b/pushy/src/main/java/com/eatthepath/pushy/apns/server/MockApnsServer.java
similarity index 98%
rename from pushy/src/main/java/com/turo/pushy/apns/server/MockApnsServer.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/server/MockApnsServer.java
index 87e8480c..c8f70247 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/server/MockApnsServer.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/server/MockApnsServer.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
 
 import io.netty.channel.ChannelPipeline;
 import io.netty.channel.EventLoopGroup;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/server/MockApnsServerBuilder.java b/pushy/src/main/java/com/eatthepath/pushy/apns/server/MockApnsServerBuilder.java
similarity index 98%
rename from pushy/src/main/java/com/turo/pushy/apns/server/MockApnsServerBuilder.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/server/MockApnsServerBuilder.java
index d775b4ea..11e687a8 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/server/MockApnsServerBuilder.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/server/MockApnsServerBuilder.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
 
 import io.netty.channel.EventLoopGroup;
 import io.netty.handler.ssl.SslContext;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/server/MockApnsServerHandler.java b/pushy/src/main/java/com/eatthepath/pushy/apns/server/MockApnsServerHandler.java
similarity index 98%
rename from pushy/src/main/java/com/turo/pushy/apns/server/MockApnsServerHandler.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/server/MockApnsServerHandler.java
index 81e93608..57d502ed 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/server/MockApnsServerHandler.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/server/MockApnsServerHandler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,12 +20,12 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
 
 import com.eatthepath.uuid.FastUUID;
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
-import com.turo.pushy.apns.util.DateAsTimeSinceEpochTypeAdapter;
+import com.eatthepath.pushy.apns.util.DateAsTimeSinceEpochTypeAdapter;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
 import io.netty.channel.ChannelFuture;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/server/MockApnsServerListener.java b/pushy/src/main/java/com/eatthepath/pushy/apns/server/MockApnsServerListener.java
similarity index 94%
rename from pushy/src/main/java/com/turo/pushy/apns/server/MockApnsServerListener.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/server/MockApnsServerListener.java
index bd123f4e..b06ead6e 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/server/MockApnsServerListener.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/server/MockApnsServerListener.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
 
 import io.netty.buffer.ByteBuf;
 import io.netty.handler.codec.http2.Http2Headers;
@@ -36,7 +36,7 @@ import java.util.Date;
  * {@link PushNotificationHandler}. As a result, notifications accepted by a mock server might be rejected by a real
  * APNs server or vice versa. Notifications passed to listeners may have missing, incomplete, or nonsense data
  * regardless of whether they were accepted or rejected, and callers should use appropriate caution. Parsing
- * notification headers/payloads into {@link com.turo.pushy.apns.ApnsPushNotification} instances is the responsibility
+ * notification headers/payloads into {@link com.eatthepath.pushy.apns.ApnsPushNotification} instances is the responsibility
  * of the caller, and callers may with to subclass {@link ParsingMockApnsServerListenerAdapter} if they need to work
  * with {@code ApnsPushNotification} instances instead of raw headers and byte buffers.</p>
  *
diff --git a/pushy/src/main/java/com/turo/pushy/apns/server/ParsingMockApnsServerListenerAdapter.java b/pushy/src/main/java/com/eatthepath/pushy/apns/server/ParsingMockApnsServerListenerAdapter.java
similarity index 97%
rename from pushy/src/main/java/com/turo/pushy/apns/server/ParsingMockApnsServerListenerAdapter.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/server/ParsingMockApnsServerListenerAdapter.java
index db268ca8..1e6fc044 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/server/ParsingMockApnsServerListenerAdapter.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/server/ParsingMockApnsServerListenerAdapter.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2018 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,12 +20,12 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
 
 import com.eatthepath.uuid.FastUUID;
-import com.turo.pushy.apns.ApnsPushNotification;
-import com.turo.pushy.apns.DeliveryPriority;
-import com.turo.pushy.apns.PushType;
+import com.eatthepath.pushy.apns.ApnsPushNotification;
+import com.eatthepath.pushy.apns.DeliveryPriority;
+import com.eatthepath.pushy.apns.PushType;
 import io.netty.buffer.ByteBuf;
 import io.netty.handler.codec.http2.Http2Headers;
 import io.netty.util.AsciiString;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/server/PushNotificationHandler.java b/pushy/src/main/java/com/eatthepath/pushy/apns/server/PushNotificationHandler.java
similarity index 97%
rename from pushy/src/main/java/com/turo/pushy/apns/server/PushNotificationHandler.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/server/PushNotificationHandler.java
index 054e4cbe..c7a9efbc 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/server/PushNotificationHandler.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/server/PushNotificationHandler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
 
 import io.netty.buffer.ByteBuf;
 import io.netty.handler.codec.http2.Http2Headers;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/server/PushNotificationHandlerFactory.java b/pushy/src/main/java/com/eatthepath/pushy/apns/server/PushNotificationHandlerFactory.java
similarity index 95%
rename from pushy/src/main/java/com/turo/pushy/apns/server/PushNotificationHandlerFactory.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/server/PushNotificationHandlerFactory.java
index 06deb833..1e5aecb8 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/server/PushNotificationHandlerFactory.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/server/PushNotificationHandlerFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
 
 import javax.net.ssl.SSLSession;
 
diff --git a/pushy/src/main/java/com/turo/pushy/apns/server/RejectedNotificationException.java b/pushy/src/main/java/com/eatthepath/pushy/apns/server/RejectedNotificationException.java
similarity index 96%
rename from pushy/src/main/java/com/turo/pushy/apns/server/RejectedNotificationException.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/server/RejectedNotificationException.java
index 56a873a7..f5f98430 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/server/RejectedNotificationException.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/server/RejectedNotificationException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
 
 import java.util.Objects;
 
diff --git a/pushy/src/main/java/com/turo/pushy/apns/server/RejectionReason.java b/pushy/src/main/java/com/eatthepath/pushy/apns/server/RejectionReason.java
similarity index 98%
rename from pushy/src/main/java/com/turo/pushy/apns/server/RejectionReason.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/server/RejectionReason.java
index 5efd150c..e7796bbc 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/server/RejectionReason.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/server/RejectionReason.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
 
 import io.netty.handler.codec.http.HttpResponseStatus;
 
diff --git a/pushy/src/main/java/com/turo/pushy/apns/server/ServerChannelClassUtil.java b/pushy/src/main/java/com/eatthepath/pushy/apns/server/ServerChannelClassUtil.java
similarity index 97%
rename from pushy/src/main/java/com/turo/pushy/apns/server/ServerChannelClassUtil.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/server/ServerChannelClassUtil.java
index 476f6b87..9b40e803 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/server/ServerChannelClassUtil.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/server/ServerChannelClassUtil.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
 
 import io.netty.channel.EventLoopGroup;
 import io.netty.channel.ServerChannel;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/server/TlsAuthenticationValidatingPushNotificationHandler.java b/pushy/src/main/java/com/eatthepath/pushy/apns/server/TlsAuthenticationValidatingPushNotificationHandler.java
similarity index 97%
rename from pushy/src/main/java/com/turo/pushy/apns/server/TlsAuthenticationValidatingPushNotificationHandler.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/server/TlsAuthenticationValidatingPushNotificationHandler.java
index 38e58ea0..642202fc 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/server/TlsAuthenticationValidatingPushNotificationHandler.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/server/TlsAuthenticationValidatingPushNotificationHandler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
 
 import io.netty.handler.codec.http2.Http2Headers;
 import io.netty.util.AsciiString;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/server/TokenAuthenticationValidatingPushNotificationHandler.java b/pushy/src/main/java/com/eatthepath/pushy/apns/server/TokenAuthenticationValidatingPushNotificationHandler.java
similarity index 97%
rename from pushy/src/main/java/com/turo/pushy/apns/server/TokenAuthenticationValidatingPushNotificationHandler.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/server/TokenAuthenticationValidatingPushNotificationHandler.java
index 8e203928..2ea6af2f 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/server/TokenAuthenticationValidatingPushNotificationHandler.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/server/TokenAuthenticationValidatingPushNotificationHandler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,10 +20,10 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
 
-import com.turo.pushy.apns.auth.ApnsVerificationKey;
-import com.turo.pushy.apns.auth.AuthenticationToken;
+import com.eatthepath.pushy.apns.auth.ApnsVerificationKey;
+import com.eatthepath.pushy.apns.auth.AuthenticationToken;
 import io.netty.handler.codec.http2.Http2Headers;
 import io.netty.util.AsciiString;
 import org.slf4j.Logger;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/server/UnregisteredDeviceTokenException.java b/pushy/src/main/java/com/eatthepath/pushy/apns/server/UnregisteredDeviceTokenException.java
similarity index 96%
rename from pushy/src/main/java/com/turo/pushy/apns/server/UnregisteredDeviceTokenException.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/server/UnregisteredDeviceTokenException.java
index 4a94dc4f..92169d60 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/server/UnregisteredDeviceTokenException.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/server/UnregisteredDeviceTokenException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
 
 import java.util.Date;
 import java.util.Objects;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/server/ValidatingPushNotificationHandler.java b/pushy/src/main/java/com/eatthepath/pushy/apns/server/ValidatingPushNotificationHandler.java
similarity index 97%
rename from pushy/src/main/java/com/turo/pushy/apns/server/ValidatingPushNotificationHandler.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/server/ValidatingPushNotificationHandler.java
index 72845876..789f2cc9 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/server/ValidatingPushNotificationHandler.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/server/ValidatingPushNotificationHandler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,11 +20,11 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
 
 import com.eatthepath.uuid.FastUUID;
-import com.turo.pushy.apns.DeliveryPriority;
-import com.turo.pushy.apns.PushType;
+import com.eatthepath.pushy.apns.DeliveryPriority;
+import com.eatthepath.pushy.apns.PushType;
 import io.netty.buffer.ByteBuf;
 import io.netty.handler.codec.http.HttpMethod;
 import io.netty.handler.codec.http2.Http2Headers;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/server/ValidatingPushNotificationHandlerFactory.java b/pushy/src/main/java/com/eatthepath/pushy/apns/server/ValidatingPushNotificationHandlerFactory.java
similarity index 97%
rename from pushy/src/main/java/com/turo/pushy/apns/server/ValidatingPushNotificationHandlerFactory.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/server/ValidatingPushNotificationHandlerFactory.java
index b1937667..e33fe5d6 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/server/ValidatingPushNotificationHandlerFactory.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/server/ValidatingPushNotificationHandlerFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,9 +20,9 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
 
-import com.turo.pushy.apns.auth.ApnsVerificationKey;
+import com.eatthepath.pushy.apns.auth.ApnsVerificationKey;
 
 import javax.net.ssl.SSLPeerUnverifiedException;
 import javax.net.ssl.SSLSession;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/server/package-info.java b/pushy/src/main/java/com/eatthepath/pushy/apns/server/package-info.java
similarity index 82%
rename from pushy/src/main/java/com/turo/pushy/apns/server/package-info.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/server/package-info.java
index 0e6faea9..83b1aeab 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/server/package-info.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/server/package-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -25,12 +25,12 @@
  * integration testing and benchmarking, and callers will not need to use anything in this package to send push
  * notifications to a real APNs server.</p>
  *
- * <p>Callers construct mock APNs servers using a {@link com.turo.pushy.apns.server.MockApnsServerBuilder}. Mock servers
- * require a {@link com.turo.pushy.apns.server.PushNotificationHandler} that controls whether the server accepts or
+ * <p>Callers construct mock APNs servers using a {@link com.eatthepath.pushy.apns.server.MockApnsServerBuilder}. Mock servers
+ * require a {@link com.eatthepath.pushy.apns.server.PushNotificationHandler} that controls whether the server accepts or
  * rejects individual notifications.</p>
  *
  * @author <a href="https://github.com/jchambers">Jon Chambers</a>
  *
  * @since 0.12
  */
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/util/ApnsPayloadBuilder.java b/pushy/src/main/java/com/eatthepath/pushy/apns/util/ApnsPayloadBuilder.java
similarity index 99%
rename from pushy/src/main/java/com/turo/pushy/apns/util/ApnsPayloadBuilder.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/util/ApnsPayloadBuilder.java
index 5f4dc74b..d6b450f3 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/util/ApnsPayloadBuilder.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/util/ApnsPayloadBuilder.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.util;
+package com.eatthepath.pushy.apns.util;
 
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/util/DateAsTimeSinceEpochTypeAdapter.java b/pushy/src/main/java/com/eatthepath/pushy/apns/util/DateAsTimeSinceEpochTypeAdapter.java
similarity index 97%
rename from pushy/src/main/java/com/turo/pushy/apns/util/DateAsTimeSinceEpochTypeAdapter.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/util/DateAsTimeSinceEpochTypeAdapter.java
index a3bf66e7..59a6dde5 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/util/DateAsTimeSinceEpochTypeAdapter.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/util/DateAsTimeSinceEpochTypeAdapter.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.util;
+package com.eatthepath.pushy.apns.util;
 
 import com.google.gson.*;
 
diff --git a/pushy/src/main/java/com/turo/pushy/apns/util/SimpleApnsPushNotification.java b/pushy/src/main/java/com/eatthepath/pushy/apns/util/SimpleApnsPushNotification.java
similarity index 98%
rename from pushy/src/main/java/com/turo/pushy/apns/util/SimpleApnsPushNotification.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/util/SimpleApnsPushNotification.java
index ace26ac4..159f452c 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/util/SimpleApnsPushNotification.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/util/SimpleApnsPushNotification.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,12 +20,12 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.util;
+package com.eatthepath.pushy.apns.util;
 
 import com.eatthepath.uuid.FastUUID;
-import com.turo.pushy.apns.ApnsPushNotification;
-import com.turo.pushy.apns.DeliveryPriority;
-import com.turo.pushy.apns.PushType;
+import com.eatthepath.pushy.apns.ApnsPushNotification;
+import com.eatthepath.pushy.apns.DeliveryPriority;
+import com.eatthepath.pushy.apns.PushType;
 
 import java.util.Date;
 import java.util.Objects;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/util/TokenUtil.java b/pushy/src/main/java/com/eatthepath/pushy/apns/util/TokenUtil.java
similarity index 96%
rename from pushy/src/main/java/com/turo/pushy/apns/util/TokenUtil.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/util/TokenUtil.java
index 1957100f..0460cf43 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/util/TokenUtil.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/util/TokenUtil.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.util;
+package com.eatthepath.pushy.apns.util;
 
 /**
  * A utility class for processing APNs token strings.
diff --git a/pushy/src/main/java/com/eatthepath/pushy/apns/util/concurrent/PushNotificationFuture.java b/pushy/src/main/java/com/eatthepath/pushy/apns/util/concurrent/PushNotificationFuture.java
new file mode 100644
index 00000000..d1ddb19b
--- /dev/null
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/util/concurrent/PushNotificationFuture.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2020 Jon Chambers
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package com.eatthepath.pushy.apns.util.concurrent;
+
+import com.eatthepath.pushy.apns.ApnsPushNotification;
+import io.netty.util.concurrent.Future;
+
+/**
+ * A push notification future represents the result an operation on a push notification.
+ *
+ * @param <P> the type of push notification sent
+ * @param <V> the type of value returned by the operation
+ *
+ * @author <a href="https://github.com/jchambers">Jon Chambers</a>
+ */
+public interface PushNotificationFuture<P extends ApnsPushNotification, V> extends Future<V> {
+
+    /**
+     * Returns the push notification to which the operation represented by this future applies.
+     *
+     * @return the push notification to which the operation represented by this future applies
+     */
+    P getPushNotification();
+}
diff --git a/pushy/src/main/java/com/turo/pushy/apns/util/concurrent/PushNotificationResponseListener.java b/pushy/src/main/java/com/eatthepath/pushy/apns/util/concurrent/PushNotificationResponseListener.java
similarity index 84%
rename from pushy/src/main/java/com/turo/pushy/apns/util/concurrent/PushNotificationResponseListener.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/util/concurrent/PushNotificationResponseListener.java
index a20f69f5..b5c8d475 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/util/concurrent/PushNotificationResponseListener.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/util/concurrent/PushNotificationResponseListener.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,10 +20,10 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.util.concurrent;
+package com.eatthepath.pushy.apns.util.concurrent;
 
-import com.turo.pushy.apns.ApnsPushNotification;
-import com.turo.pushy.apns.PushNotificationResponse;
+import com.eatthepath.pushy.apns.ApnsPushNotification;
+import com.eatthepath.pushy.apns.PushNotificationResponse;
 import io.netty.util.concurrent.GenericFutureListener;
 
 /**
@@ -31,7 +31,7 @@ import io.netty.util.concurrent.GenericFutureListener;
  *
  * @param <T> the type of push notification sent
  *
- * @see com.turo.pushy.apns.ApnsClient#sendNotification(ApnsPushNotification)
+ * @see com.eatthepath.pushy.apns.ApnsClient#sendNotification(ApnsPushNotification)
  */
 public interface PushNotificationResponseListener<T extends ApnsPushNotification>
         extends GenericFutureListener<PushNotificationFuture<T, PushNotificationResponse<T>>> {
diff --git a/pushy/src/main/java/com/turo/pushy/apns/util/concurrent/package-info.java b/pushy/src/main/java/com/eatthepath/pushy/apns/util/concurrent/package-info.java
similarity index 93%
rename from pushy/src/main/java/com/turo/pushy/apns/util/concurrent/package-info.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/util/concurrent/package-info.java
index 0b8bc6ed..13df4af7 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/util/concurrent/package-info.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/util/concurrent/package-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -25,4 +25,4 @@
  *
  * @author <a href="https://github.com/jchambers">Jon Chambers</a>
  */
-package com.turo.pushy.apns.util.concurrent;
+package com.eatthepath.pushy.apns.util.concurrent;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/util/package-info.java b/pushy/src/main/java/com/eatthepath/pushy/apns/util/package-info.java
similarity index 85%
rename from pushy/src/main/java/com/turo/pushy/apns/util/package-info.java
rename to pushy/src/main/java/com/eatthepath/pushy/apns/util/package-info.java
index 7942ceec..8c7e1f0b 100644
--- a/pushy/src/main/java/com/turo/pushy/apns/util/package-info.java
+++ b/pushy/src/main/java/com/eatthepath/pushy/apns/util/package-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -25,15 +25,15 @@
  *
  * <p>Push notification payloads are <a href="http://json.org/">JSON</a> strings that contain information about how the
  * receiving device should handle and display the notification. The
- * {@link com.turo.pushy.apns.util.ApnsPayloadBuilder} class is a tool to construct payloads that comply with the
+ * {@link com.eatthepath.pushy.apns.util.ApnsPayloadBuilder} class is a tool to construct payloads that comply with the
  * APNs specification.</p>
  *
  * <p>Device tokens identify the device to which a push notification is being sent. Ultimately, tokens need to be
  * expressed as a string of hexadecimal characters, but a common practice is to transmit tokens as the output of
  * <a href="https://developer.apple.com/documentation/foundation/nsdata/1412579-description">
- * {@code [NSData describe]}</a>. The {@link com.turo.pushy.apns.util.TokenUtil} class provides methods for
+ * {@code [NSData describe]}</a>. The {@link com.eatthepath.pushy.apns.util.TokenUtil} class provides methods for
  * sanitizing token strings so they can be sent safely to the APNs gateway.</p>
  *
  * @author <a href="https://github.com/jchambers">Jon Chambers</a>
  */
-package com.turo.pushy.apns.util;
+package com.eatthepath.pushy.apns.util;
diff --git a/pushy/src/main/java/com/turo/pushy/apns/PooledObjectFactory.java b/pushy/src/main/java/com/turo/pushy/apns/PooledObjectFactory.java
deleted file mode 100644
index 74efe0f7..00000000
--- a/pushy/src/main/java/com/turo/pushy/apns/PooledObjectFactory.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.turo.pushy.apns;
-
-import io.netty.util.concurrent.Future;
-import io.netty.util.concurrent.Promise;
-
-/**
- * Constructs new objects for use in an asynchronous object pool.
- *
- * @param <T> the type of object created by this factory
- */
-interface PooledObjectFactory <T> {
-
-    /**
-     * Asynchronously creates a new object for use in an asynchronous object pool.
-     *
-     * @param promise a {@code Promise} to be notified when a new pooled object has been created
-     *
-     * @return a {@code Future} that will complete when a new pooled object has been created
-     */
-    Future<T> create(Promise<T> promise);
-
-    /**
-     * Asynchronously destroys an object evicted from an asynchronous object pool.
-     *
-     * @param object the object to destroy
-     * @param promise a {@code Promise} to be notified when the object has been destroyed
-     *
-     * @return a {@code Future} that will complete when the given object has been destroyed
-     */
-    Future<Void> destroy(T object, Promise<Void> promise);
-}
diff --git a/pushy/src/main/java/com/turo/pushy/apns/PushNotificationPromise.java b/pushy/src/main/java/com/turo/pushy/apns/PushNotificationPromise.java
deleted file mode 100644
index 0a9b6794..00000000
--- a/pushy/src/main/java/com/turo/pushy/apns/PushNotificationPromise.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.turo.pushy.apns;
-
-import com.turo.pushy.apns.util.concurrent.PushNotificationFuture;
-import io.netty.util.concurrent.DefaultPromise;
-import io.netty.util.concurrent.EventExecutor;
-
-class PushNotificationPromise<P extends ApnsPushNotification, V> extends DefaultPromise<V> implements PushNotificationFuture<P, V> {
-
-    private final P pushNotification;
-
-    PushNotificationPromise(final EventExecutor eventExecutor, final P pushNotification) {
-        super(eventExecutor);
-
-        this.pushNotification = pushNotification;
-    }
-
-    @Override
-    public P getPushNotification() {
-        return this.pushNotification;
-    }
-}
diff --git a/pushy/src/main/java/com/turo/pushy/apns/util/concurrent/PushNotificationFuture.java b/pushy/src/main/java/com/turo/pushy/apns/util/concurrent/PushNotificationFuture.java
deleted file mode 100644
index 010920c5..00000000
--- a/pushy/src/main/java/com/turo/pushy/apns/util/concurrent/PushNotificationFuture.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.turo.pushy.apns.util.concurrent;
-
-import com.turo.pushy.apns.ApnsPushNotification;
-import io.netty.util.concurrent.Future;
-
-/**
- * A push notification future represents the result an operation on a push notification.
- *
- * @param <P> the type of push notification sent
- * @param <V> the type of value returned by the operation
- *
- * @author <a href="https://github.com/jchambers">Jon Chambers</a>
- */
-public interface PushNotificationFuture<P extends ApnsPushNotification, V> extends Future<V> {
-
-    /**
-     * Returns the push notification to which the operation represented by this future applies.
-     *
-     * @return the push notification to which the operation represented by this future applies
-     */
-    P getPushNotification();
-}
diff --git a/pushy/src/main/java/overview.html b/pushy/src/main/java/overview.html
index 85e4e755..a221bf1e 100644
--- a/pushy/src/main/java/overview.html
+++ b/pushy/src/main/java/overview.html
@@ -1,5 +1,5 @@
 <!--
-  Copyright (c) 2013-2017 Turo
+  Copyright (c) 2020 Jon Chambers
 
   Permission is hereby granted, free of charge, to any person obtaining a copy
   of this software and associated documentation files (the "Software"), to deal
@@ -33,15 +33,19 @@
         notifications. Pushy is written by the engineers at <a href="https://turo.com/" target="_top">Turo</a>.</p>
 
         <p>Pushy sends push notifications using Apple's HTTP/2-based APNs protocol. Most users will interact with
-        Pushy via the {@link com.turo.pushy.apns.ApnsClient} class, which manages connections and sends notifications
-        to the APNs server. Generally, {@code ApnsClient} instances are constructed by an
-        {@link com.turo.pushy.apns.ApnsClientBuilder}.</p>
-
-        <p>The {@link com.turo.pushy.apns.util.SimpleApnsPushNotification} class provides a simple, concrete
-        implementation of the {@link com.turo.pushy.apns.ApnsPushNotification} interface. A push notification's payload
-        is just a JSON text, and callers may construct payloads however they choose. Most users, though, will probably
-        find the {@link com.turo.pushy.apns.util.ApnsPayloadBuilder} class helpful for constructing push notification
-        payloads.</p>
+            Pushy via the {@link com.eatthepath.pushy.apns.ApnsClient} class, which manages connections and sends
+            notifications
+            to the APNs server. Generally, {@code ApnsClient} instances are constructed by an
+            {@link com.eatthepath.pushy.apns.ApnsClientBuilder}.</p>
+
+        <p>The {@link com.eatthepath.pushy.apns.util.SimpleApnsPushNotification} class provides a simple, concrete
+            implementation of the {@link com.eatthepath.pushy.apns.ApnsPushNotification} interface. A push
+            notification's payload
+            is just a JSON text, and callers may construct payloads however they choose. Most users, though, will
+            probably
+            find the {@link com.eatthepath.pushy.apns.util.ApnsPayloadBuilder} class helpful for constructing push
+            notification
+            payloads.</p>
 
         <p>Pushy is available under the <a href="http://opensource.org/licenses/MIT">MIT License</a>.</p>
     </body>


Test patch:
diff --git a/dropwizard-metrics-listener/src/test/java/com/turo/pushy/apns/metrics/dropwizard/DropwizardApnsClientMetricsListenerTest.java b/dropwizard-metrics-listener/src/test/java/com/eatthepath/pushy/apns/metrics/dropwizard/DropwizardApnsClientMetricsListenerTest.java
similarity index 98%
rename from dropwizard-metrics-listener/src/test/java/com/turo/pushy/apns/metrics/dropwizard/DropwizardApnsClientMetricsListenerTest.java
rename to dropwizard-metrics-listener/src/test/java/com/eatthepath/pushy/apns/metrics/dropwizard/DropwizardApnsClientMetricsListenerTest.java
index 9e63e83c..9dc28515 100644
--- a/dropwizard-metrics-listener/src/test/java/com/turo/pushy/apns/metrics/dropwizard/DropwizardApnsClientMetricsListenerTest.java
+++ b/dropwizard-metrics-listener/src/test/java/com/eatthepath/pushy/apns/metrics/dropwizard/DropwizardApnsClientMetricsListenerTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.metrics.dropwizard;
+package com.eatthepath.pushy.apns.metrics.dropwizard;
 
 import com.codahale.metrics.Gauge;
 import com.codahale.metrics.Meter;
diff --git a/dropwizard-metrics-listener/src/test/java/com/turo/pushy/apns/metrics/dropwizard/ExampleApp.java b/dropwizard-metrics-listener/src/test/java/com/eatthepath/pushy/apns/metrics/dropwizard/ExampleApp.java
similarity index 90%
rename from dropwizard-metrics-listener/src/test/java/com/turo/pushy/apns/metrics/dropwizard/ExampleApp.java
rename to dropwizard-metrics-listener/src/test/java/com/eatthepath/pushy/apns/metrics/dropwizard/ExampleApp.java
index ab8252d9..ae9ff7aa 100644
--- a/dropwizard-metrics-listener/src/test/java/com/turo/pushy/apns/metrics/dropwizard/ExampleApp.java
+++ b/dropwizard-metrics-listener/src/test/java/com/eatthepath/pushy/apns/metrics/dropwizard/ExampleApp.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,12 +20,12 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.metrics.dropwizard;
+package com.eatthepath.pushy.apns.metrics.dropwizard;
 
 import com.codahale.metrics.MetricRegistry;
-import com.turo.pushy.apns.ApnsClient;
-import com.turo.pushy.apns.ApnsClientBuilder;
-import com.turo.pushy.apns.auth.ApnsSigningKey;
+import com.eatthepath.pushy.apns.ApnsClient;
+import com.eatthepath.pushy.apns.ApnsClientBuilder;
+import com.eatthepath.pushy.apns.auth.ApnsSigningKey;
 
 import java.io.File;
 
diff --git a/micrometer-metrics-listener/src/test/java/com/turo/pushy/apns/metrics/micrometer/ExampleApp.java b/micrometer-metrics-listener/src/test/java/com/eatthepath/pushy/apns/metrics/micrometer/ExampleApp.java
similarity index 90%
rename from micrometer-metrics-listener/src/test/java/com/turo/pushy/apns/metrics/micrometer/ExampleApp.java
rename to micrometer-metrics-listener/src/test/java/com/eatthepath/pushy/apns/metrics/micrometer/ExampleApp.java
index 6e2d8a3d..58f4afe7 100644
--- a/micrometer-metrics-listener/src/test/java/com/turo/pushy/apns/metrics/micrometer/ExampleApp.java
+++ b/micrometer-metrics-listener/src/test/java/com/eatthepath/pushy/apns/metrics/micrometer/ExampleApp.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2018 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,11 +20,11 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.metrics.micrometer;
+package com.eatthepath.pushy.apns.metrics.micrometer;
 
-import com.turo.pushy.apns.ApnsClient;
-import com.turo.pushy.apns.ApnsClientBuilder;
-import com.turo.pushy.apns.auth.ApnsSigningKey;
+import com.eatthepath.pushy.apns.ApnsClient;
+import com.eatthepath.pushy.apns.ApnsClientBuilder;
+import com.eatthepath.pushy.apns.auth.ApnsSigningKey;
 import io.micrometer.core.instrument.MeterRegistry;
 import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
 
diff --git a/micrometer-metrics-listener/src/test/java/com/turo/pushy/apns/metrics/micrometer/MicrometerApnsClientMetricsListenerTest.java b/micrometer-metrics-listener/src/test/java/com/eatthepath/pushy/apns/metrics/micrometer/MicrometerApnsClientMetricsListenerTest.java
similarity index 98%
rename from micrometer-metrics-listener/src/test/java/com/turo/pushy/apns/metrics/micrometer/MicrometerApnsClientMetricsListenerTest.java
rename to micrometer-metrics-listener/src/test/java/com/eatthepath/pushy/apns/metrics/micrometer/MicrometerApnsClientMetricsListenerTest.java
index 1054a13b..270e604f 100644
--- a/micrometer-metrics-listener/src/test/java/com/turo/pushy/apns/metrics/micrometer/MicrometerApnsClientMetricsListenerTest.java
+++ b/micrometer-metrics-listener/src/test/java/com/eatthepath/pushy/apns/metrics/micrometer/MicrometerApnsClientMetricsListenerTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2018 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.metrics.micrometer;
+package com.eatthepath.pushy.apns.metrics.micrometer;
 
 import io.micrometer.core.instrument.*;
 import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
diff --git a/pushy/src/test/java/com/turo/pushy/apns/AbstractClientServerTest.java b/pushy/src/test/java/com/eatthepath/pushy/apns/AbstractClientServerTest.java
similarity index 93%
rename from pushy/src/test/java/com/turo/pushy/apns/AbstractClientServerTest.java
rename to pushy/src/test/java/com/eatthepath/pushy/apns/AbstractClientServerTest.java
index bc31c42b..701bf46c 100644
--- a/pushy/src/test/java/com/turo/pushy/apns/AbstractClientServerTest.java
+++ b/pushy/src/test/java/com/eatthepath/pushy/apns/AbstractClientServerTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2018 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,16 +20,16 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
 
-import com.turo.pushy.apns.auth.ApnsSigningKey;
-import com.turo.pushy.apns.auth.ApnsVerificationKey;
-import com.turo.pushy.apns.auth.KeyPairUtil;
-import com.turo.pushy.apns.server.MockApnsServer;
-import com.turo.pushy.apns.server.MockApnsServerBuilder;
-import com.turo.pushy.apns.server.MockApnsServerListener;
-import com.turo.pushy.apns.server.PushNotificationHandlerFactory;
-import com.turo.pushy.apns.util.ApnsPayloadBuilder;
+import com.eatthepath.pushy.apns.auth.ApnsSigningKey;
+import com.eatthepath.pushy.apns.auth.ApnsVerificationKey;
+import com.eatthepath.pushy.apns.auth.KeyPairUtil;
+import com.eatthepath.pushy.apns.server.MockApnsServer;
+import com.eatthepath.pushy.apns.server.MockApnsServerBuilder;
+import com.eatthepath.pushy.apns.server.MockApnsServerListener;
+import com.eatthepath.pushy.apns.server.PushNotificationHandlerFactory;
+import com.eatthepath.pushy.apns.util.ApnsPayloadBuilder;
 import io.netty.channel.nio.NioEventLoopGroup;
 import io.netty.util.concurrent.DefaultPromise;
 import io.netty.util.concurrent.GlobalEventExecutor;
diff --git a/pushy/src/test/java/com/turo/pushy/apns/ApnsChannelPoolTest.java b/pushy/src/test/java/com/eatthepath/pushy/apns/ApnsChannelPoolTest.java
similarity index 87%
rename from pushy/src/test/java/com/turo/pushy/apns/ApnsChannelPoolTest.java
rename to pushy/src/test/java/com/eatthepath/pushy/apns/ApnsChannelPoolTest.java
index f1d3651a..c1b2eec4 100644
--- a/pushy/src/test/java/com/turo/pushy/apns/ApnsChannelPoolTest.java
+++ b/pushy/src/test/java/com/eatthepath/pushy/apns/ApnsChannelPoolTest.java
@@ -1,4 +1,26 @@
-package com.turo.pushy.apns;
+/*
+ * Copyright (c) 2020 Jon Chambers
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package com.eatthepath.pushy.apns;
 
 import io.netty.channel.Channel;
 import io.netty.channel.ChannelFuture;
diff --git a/pushy/src/test/java/com/turo/pushy/apns/ApnsClientBuilderTest.java b/pushy/src/test/java/com/eatthepath/pushy/apns/ApnsClientBuilderTest.java
similarity index 98%
rename from pushy/src/test/java/com/turo/pushy/apns/ApnsClientBuilderTest.java
rename to pushy/src/test/java/com/eatthepath/pushy/apns/ApnsClientBuilderTest.java
index 0fd9b99d..585f1204 100644
--- a/pushy/src/test/java/com/turo/pushy/apns/ApnsClientBuilderTest.java
+++ b/pushy/src/test/java/com/eatthepath/pushy/apns/ApnsClientBuilderTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,9 +20,9 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
 
-import com.turo.pushy.apns.auth.ApnsSigningKey;
+import com.eatthepath.pushy.apns.auth.ApnsSigningKey;
 import io.netty.channel.nio.NioEventLoopGroup;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
diff --git a/pushy/src/test/java/com/turo/pushy/apns/ApnsClientTest.java b/pushy/src/test/java/com/eatthepath/pushy/apns/ApnsClientTest.java
similarity index 98%
rename from pushy/src/test/java/com/turo/pushy/apns/ApnsClientTest.java
rename to pushy/src/test/java/com/eatthepath/pushy/apns/ApnsClientTest.java
index 4cbf101a..7e75ec1c 100644
--- a/pushy/src/test/java/com/turo/pushy/apns/ApnsClientTest.java
+++ b/pushy/src/test/java/com/eatthepath/pushy/apns/ApnsClientTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,12 +20,12 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
 
-import com.turo.pushy.apns.server.*;
-import com.turo.pushy.apns.util.SimpleApnsPushNotification;
-import com.turo.pushy.apns.util.concurrent.PushNotificationFuture;
-import com.turo.pushy.apns.util.concurrent.PushNotificationResponseListener;
+import com.eatthepath.pushy.apns.server.*;
+import com.eatthepath.pushy.apns.util.SimpleApnsPushNotification;
+import com.eatthepath.pushy.apns.util.concurrent.PushNotificationFuture;
+import com.eatthepath.pushy.apns.util.concurrent.PushNotificationResponseListener;
 import io.netty.buffer.ByteBuf;
 import io.netty.handler.codec.http2.Http2Headers;
 import io.netty.util.concurrent.Future;
diff --git a/pushy/src/test/java/com/turo/pushy/apns/AugmentingReflectiveChannelFactoryTest.java b/pushy/src/test/java/com/eatthepath/pushy/apns/AugmentingReflectiveChannelFactoryTest.java
similarity index 96%
rename from pushy/src/test/java/com/turo/pushy/apns/AugmentingReflectiveChannelFactoryTest.java
rename to pushy/src/test/java/com/eatthepath/pushy/apns/AugmentingReflectiveChannelFactoryTest.java
index 5f8937ce..3ba89ec6 100644
--- a/pushy/src/test/java/com/turo/pushy/apns/AugmentingReflectiveChannelFactoryTest.java
+++ b/pushy/src/test/java/com/eatthepath/pushy/apns/AugmentingReflectiveChannelFactoryTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
 
 import io.netty.channel.local.LocalChannel;
 import io.netty.util.AttributeKey;
diff --git a/pushy/src/test/java/com/turo/pushy/apns/ClientChannelClassUtilTest.java b/pushy/src/test/java/com/eatthepath/pushy/apns/ClientChannelClassUtilTest.java
similarity index 77%
rename from pushy/src/test/java/com/turo/pushy/apns/ClientChannelClassUtilTest.java
rename to pushy/src/test/java/com/eatthepath/pushy/apns/ClientChannelClassUtilTest.java
index e56b69ea..af6f52f7 100644
--- a/pushy/src/test/java/com/turo/pushy/apns/ClientChannelClassUtilTest.java
+++ b/pushy/src/test/java/com/eatthepath/pushy/apns/ClientChannelClassUtilTest.java
@@ -1,4 +1,26 @@
-package com.turo.pushy.apns;
+/*
+ * Copyright (c) 2020 Jon Chambers
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package com.eatthepath.pushy.apns;
 
 import io.netty.channel.epoll.Epoll;
 import io.netty.channel.epoll.EpollDatagramChannel;
diff --git a/pushy/src/test/java/com/turo/pushy/apns/DateAsTimeSinceEpochTypeAdapterTest.java b/pushy/src/test/java/com/eatthepath/pushy/apns/DateAsTimeSinceEpochTypeAdapterTest.java
similarity index 96%
rename from pushy/src/test/java/com/turo/pushy/apns/DateAsTimeSinceEpochTypeAdapterTest.java
rename to pushy/src/test/java/com/eatthepath/pushy/apns/DateAsTimeSinceEpochTypeAdapterTest.java
index 2d915ed2..d5fa1d57 100644
--- a/pushy/src/test/java/com/turo/pushy/apns/DateAsTimeSinceEpochTypeAdapterTest.java
+++ b/pushy/src/test/java/com/eatthepath/pushy/apns/DateAsTimeSinceEpochTypeAdapterTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
@@ -28,7 +28,7 @@ import static org.junit.Assert.assertNull;
 import java.util.Date;
 import java.util.concurrent.TimeUnit;
 
-import com.turo.pushy.apns.util.DateAsTimeSinceEpochTypeAdapter;
+import com.eatthepath.pushy.apns.util.DateAsTimeSinceEpochTypeAdapter;
 import org.junit.Test;
 
 import com.google.gson.JsonNull;
diff --git a/pushy/src/test/java/com/turo/pushy/apns/ExampleApp.java b/pushy/src/test/java/com/eatthepath/pushy/apns/ExampleApp.java
similarity index 93%
rename from pushy/src/test/java/com/turo/pushy/apns/ExampleApp.java
rename to pushy/src/test/java/com/eatthepath/pushy/apns/ExampleApp.java
index 33c7592b..7fc2d26b 100644
--- a/pushy/src/test/java/com/turo/pushy/apns/ExampleApp.java
+++ b/pushy/src/test/java/com/eatthepath/pushy/apns/ExampleApp.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,15 +20,15 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
 
-import com.turo.pushy.apns.auth.ApnsSigningKey;
-import com.turo.pushy.apns.proxy.Socks5ProxyHandlerFactory;
-import com.turo.pushy.apns.util.ApnsPayloadBuilder;
-import com.turo.pushy.apns.util.SimpleApnsPushNotification;
-import com.turo.pushy.apns.util.TokenUtil;
-import com.turo.pushy.apns.util.concurrent.PushNotificationFuture;
-import com.turo.pushy.apns.util.concurrent.PushNotificationResponseListener;
+import com.eatthepath.pushy.apns.auth.ApnsSigningKey;
+import com.eatthepath.pushy.apns.proxy.Socks5ProxyHandlerFactory;
+import com.eatthepath.pushy.apns.util.ApnsPayloadBuilder;
+import com.eatthepath.pushy.apns.util.SimpleApnsPushNotification;
+import com.eatthepath.pushy.apns.util.TokenUtil;
+import com.eatthepath.pushy.apns.util.concurrent.PushNotificationFuture;
+import com.eatthepath.pushy.apns.util.concurrent.PushNotificationResponseListener;
 import io.netty.util.concurrent.Future;
 
 import java.io.File;
diff --git a/pushy/src/test/java/com/turo/pushy/apns/ExpireFirstTokenPushNotificationHandler.java b/pushy/src/test/java/com/eatthepath/pushy/apns/ExpireFirstTokenPushNotificationHandler.java
similarity index 89%
rename from pushy/src/test/java/com/turo/pushy/apns/ExpireFirstTokenPushNotificationHandler.java
rename to pushy/src/test/java/com/eatthepath/pushy/apns/ExpireFirstTokenPushNotificationHandler.java
index 2e8aa730..afcabc1b 100644
--- a/pushy/src/test/java/com/turo/pushy/apns/ExpireFirstTokenPushNotificationHandler.java
+++ b/pushy/src/test/java/com/eatthepath/pushy/apns/ExpireFirstTokenPushNotificationHandler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,11 +20,11 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
 
-import com.turo.pushy.apns.server.PushNotificationHandler;
-import com.turo.pushy.apns.server.RejectedNotificationException;
-import com.turo.pushy.apns.server.RejectionReason;
+import com.eatthepath.pushy.apns.server.PushNotificationHandler;
+import com.eatthepath.pushy.apns.server.RejectedNotificationException;
+import com.eatthepath.pushy.apns.server.RejectionReason;
 import io.netty.buffer.ByteBuf;
 import io.netty.handler.codec.http2.Http2Headers;
 import io.netty.util.AsciiString;
diff --git a/pushy/src/test/java/com/turo/pushy/apns/P12UtilTest.java b/pushy/src/test/java/com/eatthepath/pushy/apns/P12UtilTest.java
similarity index 97%
rename from pushy/src/test/java/com/turo/pushy/apns/P12UtilTest.java
rename to pushy/src/test/java/com/eatthepath/pushy/apns/P12UtilTest.java
index d7609907..122f78ce 100644
--- a/pushy/src/test/java/com/turo/pushy/apns/P12UtilTest.java
+++ b/pushy/src/test/java/com/eatthepath/pushy/apns/P12UtilTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
 
 import static org.junit.Assert.*;
 
diff --git a/pushy/src/test/java/com/turo/pushy/apns/PrintTestNameRunListener.java b/pushy/src/test/java/com/eatthepath/pushy/apns/PrintTestNameRunListener.java
similarity index 96%
rename from pushy/src/test/java/com/turo/pushy/apns/PrintTestNameRunListener.java
rename to pushy/src/test/java/com/eatthepath/pushy/apns/PrintTestNameRunListener.java
index 24851e11..d6f65353 100644
--- a/pushy/src/test/java/com/turo/pushy/apns/PrintTestNameRunListener.java
+++ b/pushy/src/test/java/com/eatthepath/pushy/apns/PrintTestNameRunListener.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns;
+package com.eatthepath.pushy.apns;
 
 import org.junit.runner.Description;
 import org.junit.runner.notification.RunListener;
diff --git a/pushy/src/test/java/com/turo/pushy/apns/auth/ApnsKeyTest.java b/pushy/src/test/java/com/eatthepath/pushy/apns/auth/ApnsKeyTest.java
similarity index 97%
rename from pushy/src/test/java/com/turo/pushy/apns/auth/ApnsKeyTest.java
rename to pushy/src/test/java/com/eatthepath/pushy/apns/auth/ApnsKeyTest.java
index d863841d..0fc1565e 100644
--- a/pushy/src/test/java/com/turo/pushy/apns/auth/ApnsKeyTest.java
+++ b/pushy/src/test/java/com/eatthepath/pushy/apns/auth/ApnsKeyTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.auth;
+package com.eatthepath.pushy.apns.auth;
 
 import junitparams.JUnitParamsRunner;
 import junitparams.Parameters;
diff --git a/pushy/src/test/java/com/turo/pushy/apns/auth/ApnsSigningKeyTest.java b/pushy/src/test/java/com/eatthepath/pushy/apns/auth/ApnsSigningKeyTest.java
similarity index 95%
rename from pushy/src/test/java/com/turo/pushy/apns/auth/ApnsSigningKeyTest.java
rename to pushy/src/test/java/com/eatthepath/pushy/apns/auth/ApnsSigningKeyTest.java
index 618b0813..b20a55aa 100644
--- a/pushy/src/test/java/com/turo/pushy/apns/auth/ApnsSigningKeyTest.java
+++ b/pushy/src/test/java/com/eatthepath/pushy/apns/auth/ApnsSigningKeyTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.auth;
+package com.eatthepath.pushy.apns.auth;
 
 import java.io.IOException;
 import java.security.InvalidKeyException;
diff --git a/pushy/src/test/java/com/turo/pushy/apns/auth/ApnsVerificationKeyTest.java b/pushy/src/test/java/com/eatthepath/pushy/apns/auth/ApnsVerificationKeyTest.java
similarity index 95%
rename from pushy/src/test/java/com/turo/pushy/apns/auth/ApnsVerificationKeyTest.java
rename to pushy/src/test/java/com/eatthepath/pushy/apns/auth/ApnsVerificationKeyTest.java
index 9f12d58c..819f32bc 100644
--- a/pushy/src/test/java/com/turo/pushy/apns/auth/ApnsVerificationKeyTest.java
+++ b/pushy/src/test/java/com/eatthepath/pushy/apns/auth/ApnsVerificationKeyTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.auth;
+package com.eatthepath.pushy.apns.auth;
 
 import java.io.IOException;
 import java.security.InvalidKeyException;
diff --git a/pushy/src/test/java/com/turo/pushy/apns/auth/AuthenticationTokenTest.java b/pushy/src/test/java/com/eatthepath/pushy/apns/auth/AuthenticationTokenTest.java
similarity index 98%
rename from pushy/src/test/java/com/turo/pushy/apns/auth/AuthenticationTokenTest.java
rename to pushy/src/test/java/com/eatthepath/pushy/apns/auth/AuthenticationTokenTest.java
index 1f460331..c8f7af23 100644
--- a/pushy/src/test/java/com/turo/pushy/apns/auth/AuthenticationTokenTest.java
+++ b/pushy/src/test/java/com/eatthepath/pushy/apns/auth/AuthenticationTokenTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.auth;
+package com.eatthepath.pushy.apns.auth;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/pushy/src/test/java/com/turo/pushy/apns/auth/KeyPairUtil.java b/pushy/src/test/java/com/eatthepath/pushy/apns/auth/KeyPairUtil.java
similarity index 95%
rename from pushy/src/test/java/com/turo/pushy/apns/auth/KeyPairUtil.java
rename to pushy/src/test/java/com/eatthepath/pushy/apns/auth/KeyPairUtil.java
index 1f5a5428..75ce7120 100644
--- a/pushy/src/test/java/com/turo/pushy/apns/auth/KeyPairUtil.java
+++ b/pushy/src/test/java/com/eatthepath/pushy/apns/auth/KeyPairUtil.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.auth;
+package com.eatthepath.pushy.apns.auth;
 
 import java.security.KeyPair;
 import java.security.KeyPairGenerator;
diff --git a/pushy/src/test/java/com/turo/pushy/apns/server/MockApnsServerBuilderTest.java b/pushy/src/test/java/com/eatthepath/pushy/apns/server/MockApnsServerBuilderTest.java
similarity index 98%
rename from pushy/src/test/java/com/turo/pushy/apns/server/MockApnsServerBuilderTest.java
rename to pushy/src/test/java/com/eatthepath/pushy/apns/server/MockApnsServerBuilderTest.java
index 9f30bf15..5df41fcb 100644
--- a/pushy/src/test/java/com/turo/pushy/apns/server/MockApnsServerBuilderTest.java
+++ b/pushy/src/test/java/com/eatthepath/pushy/apns/server/MockApnsServerBuilderTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
 
 import org.junit.Test;
 
diff --git a/pushy/src/test/java/com/turo/pushy/apns/server/MockApnsServerTest.java b/pushy/src/test/java/com/eatthepath/pushy/apns/server/MockApnsServerTest.java
similarity index 98%
rename from pushy/src/test/java/com/turo/pushy/apns/server/MockApnsServerTest.java
rename to pushy/src/test/java/com/eatthepath/pushy/apns/server/MockApnsServerTest.java
index 3fb7e6b9..5680687d 100644
--- a/pushy/src/test/java/com/turo/pushy/apns/server/MockApnsServerTest.java
+++ b/pushy/src/test/java/com/eatthepath/pushy/apns/server/MockApnsServerTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,10 +20,10 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
 
-import com.turo.pushy.apns.*;
-import com.turo.pushy.apns.util.SimpleApnsPushNotification;
+import com.eatthepath.pushy.apns.*;
+import com.eatthepath.pushy.apns.util.SimpleApnsPushNotification;
 import io.netty.buffer.ByteBuf;
 import io.netty.channel.nio.NioEventLoopGroup;
 import io.netty.handler.codec.http2.Http2Headers;
diff --git a/pushy/src/test/java/com/turo/pushy/apns/server/ParsingMockApnsServerListenerAdapterTest.java b/pushy/src/test/java/com/eatthepath/pushy/apns/server/ParsingMockApnsServerListenerAdapterTest.java
similarity index 97%
rename from pushy/src/test/java/com/turo/pushy/apns/server/ParsingMockApnsServerListenerAdapterTest.java
rename to pushy/src/test/java/com/eatthepath/pushy/apns/server/ParsingMockApnsServerListenerAdapterTest.java
index 69b785f7..57ac2eed 100644
--- a/pushy/src/test/java/com/turo/pushy/apns/server/ParsingMockApnsServerListenerAdapterTest.java
+++ b/pushy/src/test/java/com/eatthepath/pushy/apns/server/ParsingMockApnsServerListenerAdapterTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2018 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,10 +20,10 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
 
-import com.turo.pushy.apns.ApnsPushNotification;
-import com.turo.pushy.apns.DeliveryPriority;
+import com.eatthepath.pushy.apns.ApnsPushNotification;
+import com.eatthepath.pushy.apns.DeliveryPriority;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.ByteBufUtil;
 import io.netty.buffer.UnpooledByteBufAllocator;
diff --git a/pushy/src/test/java/com/turo/pushy/apns/server/ServerChannelClassUtilTest.java b/pushy/src/test/java/com/eatthepath/pushy/apns/server/ServerChannelClassUtilTest.java
similarity index 65%
rename from pushy/src/test/java/com/turo/pushy/apns/server/ServerChannelClassUtilTest.java
rename to pushy/src/test/java/com/eatthepath/pushy/apns/server/ServerChannelClassUtilTest.java
index f457ee9e..03f74e6b 100644
--- a/pushy/src/test/java/com/turo/pushy/apns/server/ServerChannelClassUtilTest.java
+++ b/pushy/src/test/java/com/eatthepath/pushy/apns/server/ServerChannelClassUtilTest.java
@@ -1,4 +1,26 @@
-package com.turo.pushy.apns.server;
+/*
+ * Copyright (c) 2020 Jon Chambers
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package com.eatthepath.pushy.apns.server;
 
 import io.netty.channel.epoll.Epoll;
 import io.netty.channel.epoll.EpollEventLoopGroup;
diff --git a/pushy/src/test/java/com/turo/pushy/apns/server/TlsAuthenticationValidatingPushNotificationHandlerTest.java b/pushy/src/test/java/com/eatthepath/pushy/apns/server/TlsAuthenticationValidatingPushNotificationHandlerTest.java
similarity index 95%
rename from pushy/src/test/java/com/turo/pushy/apns/server/TlsAuthenticationValidatingPushNotificationHandlerTest.java
rename to pushy/src/test/java/com/eatthepath/pushy/apns/server/TlsAuthenticationValidatingPushNotificationHandlerTest.java
index 55cbaeb3..e36db2ff 100644
--- a/pushy/src/test/java/com/turo/pushy/apns/server/TlsAuthenticationValidatingPushNotificationHandlerTest.java
+++ b/pushy/src/test/java/com/eatthepath/pushy/apns/server/TlsAuthenticationValidatingPushNotificationHandlerTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
 
 import io.netty.handler.codec.http2.Http2Headers;
 
diff --git a/pushy/src/test/java/com/turo/pushy/apns/server/TokenAuthenticationValidatingPushNotificationHandlerTest.java b/pushy/src/test/java/com/eatthepath/pushy/apns/server/TokenAuthenticationValidatingPushNotificationHandlerTest.java
similarity index 96%
rename from pushy/src/test/java/com/turo/pushy/apns/server/TokenAuthenticationValidatingPushNotificationHandlerTest.java
rename to pushy/src/test/java/com/eatthepath/pushy/apns/server/TokenAuthenticationValidatingPushNotificationHandlerTest.java
index 422b63a5..21fc3d2b 100644
--- a/pushy/src/test/java/com/turo/pushy/apns/server/TokenAuthenticationValidatingPushNotificationHandlerTest.java
+++ b/pushy/src/test/java/com/eatthepath/pushy/apns/server/TokenAuthenticationValidatingPushNotificationHandlerTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,12 +20,12 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
 
-import com.turo.pushy.apns.auth.ApnsSigningKey;
-import com.turo.pushy.apns.auth.ApnsVerificationKey;
-import com.turo.pushy.apns.auth.AuthenticationToken;
-import com.turo.pushy.apns.auth.KeyPairUtil;
+import com.eatthepath.pushy.apns.auth.ApnsSigningKey;
+import com.eatthepath.pushy.apns.auth.ApnsVerificationKey;
+import com.eatthepath.pushy.apns.auth.AuthenticationToken;
+import com.eatthepath.pushy.apns.auth.KeyPairUtil;
 import io.netty.handler.codec.http2.Http2Headers;
 import io.netty.util.AsciiString;
 import org.junit.Before;
diff --git a/pushy/src/test/java/com/turo/pushy/apns/server/ValidatingPushNotificationHandlerTest.java b/pushy/src/test/java/com/eatthepath/pushy/apns/server/ValidatingPushNotificationHandlerTest.java
similarity index 98%
rename from pushy/src/test/java/com/turo/pushy/apns/server/ValidatingPushNotificationHandlerTest.java
rename to pushy/src/test/java/com/eatthepath/pushy/apns/server/ValidatingPushNotificationHandlerTest.java
index b310b81a..76a8b307 100644
--- a/pushy/src/test/java/com/turo/pushy/apns/server/ValidatingPushNotificationHandlerTest.java
+++ b/pushy/src/test/java/com/eatthepath/pushy/apns/server/ValidatingPushNotificationHandlerTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,9 +20,9 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.server;
+package com.eatthepath.pushy.apns.server;
 
-import com.turo.pushy.apns.DeliveryPriority;
+import com.eatthepath.pushy.apns.DeliveryPriority;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.UnpooledByteBufAllocator;
 import io.netty.handler.codec.http.HttpMethod;
diff --git a/pushy/src/test/java/com/turo/pushy/apns/util/ApnsPayloadBuilderTest.java b/pushy/src/test/java/com/eatthepath/pushy/apns/util/ApnsPayloadBuilderTest.java
similarity index 99%
rename from pushy/src/test/java/com/turo/pushy/apns/util/ApnsPayloadBuilderTest.java
rename to pushy/src/test/java/com/eatthepath/pushy/apns/util/ApnsPayloadBuilderTest.java
index d2d75bae..7c885950 100644
--- a/pushy/src/test/java/com/turo/pushy/apns/util/ApnsPayloadBuilderTest.java
+++ b/pushy/src/test/java/com/eatthepath/pushy/apns/util/ApnsPayloadBuilderTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.util;
+package com.eatthepath.pushy.apns.util;
 
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
diff --git a/pushy/src/test/java/com/turo/pushy/apns/util/SimpleApnsPushNotificationTest.java b/pushy/src/test/java/com/eatthepath/pushy/apns/util/SimpleApnsPushNotificationTest.java
similarity index 98%
rename from pushy/src/test/java/com/turo/pushy/apns/util/SimpleApnsPushNotificationTest.java
rename to pushy/src/test/java/com/eatthepath/pushy/apns/util/SimpleApnsPushNotificationTest.java
index f3b456dc..5e6c1f11 100644
--- a/pushy/src/test/java/com/turo/pushy/apns/util/SimpleApnsPushNotificationTest.java
+++ b/pushy/src/test/java/com/eatthepath/pushy/apns/util/SimpleApnsPushNotificationTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,10 +20,10 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.util;
+package com.eatthepath.pushy.apns.util;
 
-import com.turo.pushy.apns.DeliveryPriority;
-import com.turo.pushy.apns.PushType;
+import com.eatthepath.pushy.apns.DeliveryPriority;
+import com.eatthepath.pushy.apns.PushType;
 import org.junit.Test;
 
 import java.util.Date;
diff --git a/pushy/src/test/java/com/turo/pushy/apns/util/TokenUtilTest.java b/pushy/src/test/java/com/eatthepath/pushy/apns/util/TokenUtilTest.java
similarity index 95%
rename from pushy/src/test/java/com/turo/pushy/apns/util/TokenUtilTest.java
rename to pushy/src/test/java/com/eatthepath/pushy/apns/util/TokenUtilTest.java
index f6453f40..cc48eb57 100644
--- a/pushy/src/test/java/com/turo/pushy/apns/util/TokenUtilTest.java
+++ b/pushy/src/test/java/com/eatthepath/pushy/apns/util/TokenUtilTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017 Turo
+ * Copyright (c) 2020 Jon Chambers
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 
-package com.turo.pushy.apns.util;
+package com.eatthepath.pushy.apns.util;
 
 import static org.junit.Assert.assertEquals;