diff --git a/lib/NGCP/Panel/Form/Expand.pm b/lib/NGCP/Panel/Form/Expand.pm
index e13965758d..2dc39dcd7d 100644
--- a/lib/NGCP/Panel/Form/Expand.pm
+++ b/lib/NGCP/Panel/Form/Expand.pm
@@ -98,4 +98,74 @@ has_field 'subscriber_id' => (
     },
 );
 
+has_field 'package_after_id' => (
+    type => 'PosInteger',
+    element_attr => {
+        expand => {
+            class => 'NGCP::Panel::Role::API::ProfilePackages',
+            allowed_roles => [qw(admin reseller)],
+        },
+    },
+);
+
+has_field 'package_before_id' => (
+    type => 'PosInteger',
+    element_attr => {
+        expand => {
+            class => 'NGCP::Panel::Role::API::ProfilePackages',
+            allowed_roles => [qw(admin reseller)],
+        },
+    },
+);
+
+has_field 'profile_after_id' => (
+    type => 'PosInteger',
+    element_attr => {
+        expand => {
+            class => 'NGCP::Panel::Role::API::SubscriberProfiles',
+            allowed_roles => [qw(admin reseller ccareadmin ccare subscriberadmin subscriber)],
+        },
+    },
+);
+
+has_field 'profile_before_id' => (
+    type => 'PosInteger',
+    element_attr => {
+        expand => {
+            class => 'NGCP::Panel::Role::API::SubscriberProfiles',
+            allowed_roles => [qw(admin reseller ccareadmin ccare subscriberadmin subscriber)],
+        },
+    },
+);
+
+has_field 'contract_balance_after_id' => (
+    type => 'PosInteger',
+    element_attr => {
+        expand => {
+            class => 'NGCP::Panel::Role::API::CustomerBalances',
+            allowed_roles => [qw(admin reseller ccareadmin ccare)],
+        },
+    },
+);
+
+has_field 'contract_balance_before_id' => (
+    type => 'PosInteger',
+    element_attr => {
+        expand => {
+            class => 'NGCP::Panel::Role::API::CustomerBalances',
+            allowed_roles => [qw(admin reseller ccareadmin ccare)],
+        },
+    },
+);
+
+has_field 'voucher_id' => (
+    type => 'PosInteger',
+    element_attr => {
+        expand => {
+            class => 'NGCP::Panel::Role::API::Vouchers',
+            allowed_roles => [qw(admin reseller)],
+        },
+    },
+);
+
 1;
diff --git a/lib/NGCP/Panel/Role/API/Vouchers.pm b/lib/NGCP/Panel/Role/API/Vouchers.pm
index 4cd326ec55..7b81ae4a99 100644
--- a/lib/NGCP/Panel/Role/API/Vouchers.pm
+++ b/lib/NGCP/Panel/Role/API/Vouchers.pm
@@ -74,6 +74,16 @@ sub hal_from_item {
     return $hal;
 }
 
+sub resource_from_item {
+    my($self, $c, $item) = @_;
+
+    if (ref $item eq 'HASH') {
+        return $item;
+    }
+
+    return { $item->to_hash };
+}
+
 sub item_by_id {
     my ($self, $c, $id) = @_;
     my $item_rs = $self->item_rs($c);
diff --git a/lib/NGCP/Panel/Utils/Subscriber.pm b/lib/NGCP/Panel/Utils/Subscriber.pm
index 9af1bf799a..79bccdbf9e 100644
--- a/lib/NGCP/Panel/Utils/Subscriber.pm
+++ b/lib/NGCP/Panel/Utils/Subscriber.pm
@@ -1005,13 +1005,17 @@ sub update_preferences {
     my $prov_subscriber = $params{prov_subscriber};
     my $preferences = $params{preferences};
 
-    foreach my $k(keys %{ $preferences } ) {
+    foreach my $k (keys %{ $preferences } ) {
         my $pref = NGCP::Panel::Utils::Preferences::get_usr_preference_rs(
             c => $c, attribute => $k, prov_subscriber => $prov_subscriber);
         if($pref->first && $pref->first->attribute->max_occur == 1) {
             unless(defined $preferences->{$k}) {
                 $pref->first->delete;
             } else {
+                # # contract_sound_set
+                # if ($k eq 'contract_sound_set') {
+                #     next if $pref->first->value;
+                # }
                 $pref->first->update({
                     'value' => $preferences->{$k},
                 });