v2.3.0
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8e33c93..5cd93c5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,11 +1,22 @@
-# 2.3.0-SNAPSHOT
+# 2.3.0
 ### Features and Improvements
-* Set animations from res/raw. Thanks @cyrilmottier!
-* Added setFrame and getFrame apis.
-* Improved warnings for compositions with unsupported layer effects.
+* Animator fixes:
+    * Previously, some usages of lottie animator apis/api listeners would cause unexpected 
+    behavior, especially calling apis from listener callbacks.
+    * This is breaking change if you use `playAnimation(start, end)`. It has been removed in 
+    favor of explicit methods for `setMinFrame/Progress`, `setMaxFrame/Progress` and 
+    `setMinAndMaxFrame/Progress` followed by an explicit call to `playAnimation` or 
+    `resumeAnimation`. 
+    * `reverseAnimation` and `resumeReverseAnimation` apis have been removed in favor of 
+    `play` and `resume` with `speed` < 0.
+    * If you have created hack around these limitations or complex animator chaining, please test
+     your animations after updating.
+* Set an animation from R.raw (res/raw) if you want static references to your animation files. 
+This can help prevent mismatches between api calls and file names. Thanks @cyrilmottier!
+* Support for ellipse direction.
+* Expose image directory name if set from bodymovin.
 ### Bugs Fixed
-* Overhaul to underlying animator. This should make animator apis like play/pause/resume/cancel
-  behave as expected in cases with unexpected behavior before.
+* Fixed a bug with animations that use both mattes and time stretch.
 * Fixed a few keyframe issues where keyframe start/end values would be off by 1 frame.
 
 # 2.2.5
diff --git a/LottieSample/build.gradle b/LottieSample/build.gradle
index e567912..078cb64 100644
--- a/LottieSample/build.gradle
+++ b/LottieSample/build.gradle
@@ -10,8 +10,8 @@
     applicationId "com.airbnb.lottie"
     minSdkVersion 16
     targetSdkVersion 26
-    versionCode 23
-    versionName "2.3.0-SNAPSHOT"
+    versionCode 24
+    versionName "2.3.0"
     testInstrumentationRunner "com.airbnb.lottie.TestRunner"
     vectorDrawables.useSupportLibrary = true
   }
diff --git a/README.md b/README.md
index 1c333d4..7879f0b 100644
--- a/README.md
+++ b/README.md
@@ -35,7 +35,7 @@
 
 ```groovy
 dependencies {  
-  compile 'com.airbnb.android:lottie:2.2.5'
+  compile 'com.airbnb.android:lottie:2.3'
 }
 ```
 OR
diff --git a/gradle.properties b/gradle.properties
index f78cde7..b1c0432 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -17,7 +17,7 @@
 # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
 # org.gradle.parallel=true
 
-VERSION_NAME=2.3.0-SNAPSHOT
+VERSION_NAME=2.3.0
 GROUP=com.airbnb.android
 
 POM_DESCRIPTION=Lottie is an animation library that renders Adobe After Effects animations natively in realtime.