diff --git a/src/builder/DdJaniModelBuilder.cpp b/src/builder/DdJaniModelBuilder.cpp
index 5ab18683b..2addcba41 100644
--- a/src/builder/DdJaniModelBuilder.cpp
+++ b/src/builder/DdJaniModelBuilder.cpp
@@ -405,7 +405,7 @@ namespace storm {
             
             // Iterate over all assignments (boolean and integer) and build the DD for it.
             std::set<storm::expressions::Variable> assignedVariables;
-            for (auto const& assignment : destination.getNonTransientAssignments()) {
+            for (auto const& assignment : destination.getOrderedAssignments().getNonTransientAssignments()) {
                 // Record the variable as being written.
                 STORM_LOG_TRACE("Assigning to variable " << variables.variableToRowMetaVariableMap->at(assignment.getExpressionVariable()).getName());
                 assignedVariables.insert(assignment.getExpressionVariable());
diff --git a/src/generator/JaniNextStateGenerator.cpp b/src/generator/JaniNextStateGenerator.cpp
index 5b5f54151..5d03578fe 100644
--- a/src/generator/JaniNextStateGenerator.cpp
+++ b/src/generator/JaniNextStateGenerator.cpp
@@ -203,8 +203,8 @@ namespace storm {
         CompressedState JaniNextStateGenerator<ValueType, StateType>::applyUpdate(CompressedState const& state, storm::jani::EdgeDestination const& destination) {
             CompressedState newState(state);
             
-            auto assignmentIt = destination.getNonTransientAssignments().begin();
-            auto assignmentIte = destination.getNonTransientAssignments().end();
+            auto assignmentIt = destination.getOrderedAssignments().getNonTransientAssignments().begin();
+            auto assignmentIte = destination.getOrderedAssignments().getNonTransientAssignments().end();
             
             // Iterate over all boolean assignments and carry them out.
             auto boolIt = this->variableInformation.booleanVariables.begin();
diff --git a/src/storage/jani/Edge.cpp b/src/storage/jani/Edge.cpp
index 0a06f50a8..cc63283ec 100644
--- a/src/storage/jani/Edge.cpp
+++ b/src/storage/jani/Edge.cpp
@@ -71,7 +71,7 @@ namespace storm {
         
         void Edge::finalize(Model const& containingModel) {
             for (auto const& destination : getDestinations()) {
-                for (auto const& assignment : destination.getAssignments()) {
+                for (auto const& assignment : destination.getOrderedAssignments().getAllAssignments()) {
                     if (containingModel.getGlobalVariables().hasVariable(assignment.getExpressionVariable())) {
                         writtenGlobalVariables.insert(assignment.getExpressionVariable());
                     }
@@ -88,7 +88,7 @@ namespace storm {
             if (!destinations.empty()) {
                 auto const& destination = *destinations.begin();
                 
-                for (auto const& assignment : destination.getTransientAssignments()) {
+                for (auto const& assignment : destination.getOrderedAssignments().getTransientAssignments()) {
                     // Check if we can lift the assignment to the edge.
                     bool canBeLifted = true;
                     for (auto const& destination : destinations) {
diff --git a/src/storage/jani/EdgeDestination.cpp b/src/storage/jani/EdgeDestination.cpp
index c20a5d520..7429808c9 100644
--- a/src/storage/jani/EdgeDestination.cpp
+++ b/src/storage/jani/EdgeDestination.cpp
@@ -26,16 +26,8 @@ namespace storm {
             this->probability = probability;
         }
         
-        storm::jani::detail::ConstAssignments EdgeDestination::getAssignments() const {
-            return assignments.getAllAssignments();
-        }
-
-        storm::jani::detail::ConstAssignments EdgeDestination::getTransientAssignments() const {
-            return assignments.getTransientAssignments();
-        }
-        
-        storm::jani::detail::ConstAssignments EdgeDestination::getNonTransientAssignments() const {
-            return assignments.getNonTransientAssignments();
+        OrderedAssignments const& EdgeDestination::getOrderedAssignments() const {
+            return assignments;
         }
         
         void EdgeDestination::substitute(std::map<storm::expressions::Variable, storm::expressions::Expression> const& substitution) {
diff --git a/src/storage/jani/EdgeDestination.h b/src/storage/jani/EdgeDestination.h
index a7e3fb672..2ff9d4ef2 100644
--- a/src/storage/jani/EdgeDestination.h
+++ b/src/storage/jani/EdgeDestination.h
@@ -36,20 +36,7 @@ namespace storm {
              */
             void setProbability(storm::expressions::Expression const& probability);
 
-            /*!
-             * Retrieves the assignments to make when choosing this destination.
-             */
-            storm::jani::detail::ConstAssignments getAssignments() const;
-            
-            /*!
-             * Retrieves the transient assignments to make when choosing this destination.
-             */
-            storm::jani::detail::ConstAssignments getTransientAssignments() const;
-
-            /*!
-             * Retrieves the non-transient assignments to make when choosing this destination.
-             */
-            storm::jani::detail::ConstAssignments getNonTransientAssignments() const;
+            OrderedAssignments const& getOrderedAssignments() const;
 
             /*!
              * Substitutes all variables in all expressions according to the given substitution.