diff --git a/docs/api-regions.md b/docs/api-regions.md
index b62472b..324f35f 100644
--- a/docs/api-regions.md
+++ b/docs/api-regions.md
@@ -96,7 +96,6 @@
                 {
                     "name" : "org.apache.sling.api",
                     "toggle" : "NEW_SLING_API",
-                    "previous-package-version" : "1.0.3",
                     "previous-artifact-id" : "org.apache.sling:org.apache.sling.api:1.1"
                 }
             ]
@@ -104,7 +103,7 @@
     ]
 ```
 
-In the above example, if the toggle *NEW_SLING_API* is enabled, the package *org.apache.sling.api* is available based on the artifact in the feature model providing this package. If the toggle *NEW_SLING_API* is not enabled, the package *org.apache.sling.api* is available based on the artifact mentioned in the `previous` property. Usually that points to an older version of the API.
+In the above example, if the toggle *NEW_SLING_API* is enabled, the package *org.apache.sling.api* is available based on the artifact in the feature model providing this package. If the toggle *NEW_SLING_API* is not enabled, the package *org.apache.sling.api* is available based on the artifact mentioned in the `previous-artifact-id` property. Usually that points to an older version of the API.
 
 ## Deprecation of Java API
 
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/api/ApiExport.java b/src/main/java/org/apache/sling/feature/extension/apiregions/api/ApiExport.java
index 0eab0a5..518a6a7 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/api/ApiExport.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/api/ApiExport.java
@@ -32,7 +32,7 @@
 
 /**
  * Describes an exported package.
- * 
+ *
  * This class is not thread safe.
  */
 public class ApiExport implements Comparable<ApiExport> {
@@ -66,7 +66,11 @@
     /** If the package is behind a toggle, this is the previous artifact containing the package not behind a toggle */
     private ArtifactId previousArtifactId;
 
-    /** If the package is behind a toggle, this is the previous version of the package not behind a toggle */
+    /**
+     * If the package is behind a toggle, this is the previous version of the package not behind a toggle
+     * @deprecated
+     */
+    @Deprecated
     private String previousPackageVersion;
 
     private final Map<String, String> properties = new HashMap<>();
@@ -116,16 +120,20 @@
      * Get the previous version of this package
      * @return The previous version of this package or {@code null}
      * @since 1.2.0
+     * @deprecated Use {@link #getPreviousArtifactId()}
      */
+    @Deprecated
     public String getPreviousPackageVersion() {
         return this.previousPackageVersion;
     }
 
     /**
      * Set the previous version of this package
-     * @param version The previous version of this package 
+     * @param version The previous version of this package
      * @since 1.2.0
+     * @deprecated Use {@link #getPreviousArtifactId()}
      */
+    @Deprecated
     public void setPreviousPackageVersion(final String version) {
         this.previousPackageVersion = version;
     }
@@ -156,6 +164,7 @@
      * @return The previous version or {@code null}
      * @deprecated Use {@link #getPreviousArtifactId()}
      */
+    @Deprecated
     public ArtifactId getPrevious() {
         return this.getPreviousArtifactId();
     }
@@ -163,9 +172,10 @@
     /**
      * Set the previous version
      *
-     * @param previous Previus version
+     * @param previous Previous version
      * @deprecated Use {@link #setPreviousArtifactId(ArtifactId)}
      */
+    @Deprecated
     public void setPrevious(final ArtifactId previous) {
         this.setPreviousArtifactId(previous);
     }
@@ -320,10 +330,10 @@
 
     JsonValue toJSONValue() {
         final JsonValue depValue = this.deprecationToJSON();
-        if (this.getToggle() == null 
-            && this.getPreviousPackageVersion() == null 
+        if (this.getToggle() == null
+            && this.getPreviousPackageVersion() == null
             && this.getPreviousArtifactId() == null
-            && this.getProperties().isEmpty() 
+            && this.getProperties().isEmpty()
             && depValue == null ) {
            return Json.createValue(this.getName());
         }
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/api/package-info.java b/src/main/java/org/apache/sling/feature/extension/apiregions/api/package-info.java
index 2a621b7..63f8d29 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/api/package-info.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/api/package-info.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-@org.osgi.annotation.versioning.Version("1.4.0")
+@org.osgi.annotation.versioning.Version("1.4.1")
 package org.apache.sling.feature.extension.apiregions.api;
 
 
