diff --git a/smradius/modules/features/mod_feature_capping.pm b/smradius/modules/features/mod_feature_capping.pm
index 1638ac95e179001d2bbc488803571235306d385b..b956d299e7b5e3fddad55fea83938cde9b8ce57e 100644
--- a/smradius/modules/features/mod_feature_capping.pm
+++ b/smradius/modules/features/mod_feature_capping.pm
@@ -78,47 +78,64 @@ sub post_auth_hook
 
 	$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] POST AUTH HOOK");
 
-	my ($trafficLimit,$uptimeLimit);
 
-	# Get uptime limit
+	#
+	# Get limits from attributes
+	#
+
+
+	# Check if there is an uptime limit
+	my $uptimeLimit;
 	if (defined($user->{'Attributes'}->{$UPTIME_LIMIT_KEY})) {
 		$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] '".$UPTIME_LIMIT_KEY."' is defined");
-		# Operator: :=
+
+		# Check for valid attribute operator: ':='
 		if (defined($user->{'Attributes'}->{$UPTIME_LIMIT_KEY}->{':='})) {
-			# Is it a number?
+
+			# Check for valid attribute value
 			if ($user->{'Attributes'}->{$UPTIME_LIMIT_KEY}->{':='}->{'Value'} =~ /^[0-9]+$/) {
 				$uptimeLimit = $user->{'Attributes'}->{$UPTIME_LIMIT_KEY};
 			} else {
 				$server->log(LOG_NOTICE,"[MOD_FEATURE_CAPPING] '".$user->{'Attributes'}->{$UPTIME_LIMIT_KEY}->{':='}->{'Value'}.
 						"' is NOT a numeric value");
 			}
+
 		} else {
 			$server->log(LOG_NOTICE,"[MOD_FEATURE_CAPPING] No valid operators for attribute '".
 					$user->{'Attributes'}->{$UPTIME_LIMIT_KEY}."'");
 		}
 	}
 
-	# Get traffic limit
+	# Check if there is a traffic limit
+	my $trafficLimit;
 	if (defined($user->{'Attributes'}->{$TRAFFIC_LIMIT_KEY})) {
 		$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] '".$TRAFFIC_LIMIT_KEY."' is defined");
-		# Operator: :=
+
+		# Check for valid attribute operator: ':='
 		if (defined($user->{'Attributes'}->{$TRAFFIC_LIMIT_KEY}->{':='})) {
-			# Is it a number?
+
+			# Check for valid attribute value
 			if ($user->{'Attributes'}->{$TRAFFIC_LIMIT_KEY}->{':='}->{'Value'} =~ /^[0-9]+$/) {
 				$trafficLimit = $user->{'Attributes'}->{$TRAFFIC_LIMIT_KEY};
 			} else {
 				$server->log(LOG_NOTICE,"[MOD_FEATURE_CAPPING] '".$user->{'Attributes'}->{$TRAFFIC_LIMIT_KEY}->{':='}->{'Value'}.
 						"' is NOT a numeric value");
 			}
+
 		} else {
 			$server->log(LOG_NOTICE,"[MOD_FEATURE_CAPPING] No valid operators for attribute '".
 					$user->{'Attributes'}->{$TRAFFIC_LIMIT_KEY}."'");
 		}
 	}
 
-	# Get the users' usage
+
+	#
+	# Get current traffic and uptime usage
+	#
+
+
+	# Loop with plugins to find anything supporting getting of usage
 	my $accountingUsage;
-	# Loop with plugins to find anyting supporting getting of usage
 	foreach my $module (@{$server->{'module_list'}}) {
 		# Do we have the correct plugin?
 		if ($module->{'Accounting_getUsage'}) {
@@ -134,13 +151,20 @@ sub post_auth_hook
 		}
 	}
 
-	# Get topups
+
+	#
+	# Get valid traffic and uptime topups
+	#
+
+
+	# Check if there was any data returned at all
 	my $uptimeTopup = 0;
 	if (defined($user->{'ConfigAttributes'}->{$TIME_TOPUPS_KEY})) {
 		$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] '".$TIME_TOPUPS_KEY."' is defined");
-		# Is there a value?
+
+		# Check if there is a value
 		if (defined($user->{'ConfigAttributes'}->{$TIME_TOPUPS_KEY}->[0])) {
-			# Is it a number?
+			# Check if the value is of a valid type
 			if ($user->{'ConfigAttributes'}->{$TIME_TOPUPS_KEY}->[0] =~ /^[0-9]+$/) {
 				$uptimeTopup = $user->{'ConfigAttributes'}->{$TIME_TOPUPS_KEY}->[0];
 			} else {
@@ -152,37 +176,7 @@ sub post_auth_hook
 		}
 	}
 
-	# Set allowed uptime usage
-	my $alteredUptimeLimit = 0;
-	# Topups available
-	if ($uptimeTopup > 0) {
-		if (defined($uptimeLimit->{':='}->{'Value'})) {
-			$alteredUptimeLimit = $uptimeLimit->{':='}->{'Value'} + $uptimeTopup;
-		} else {
-			$alteredUptimeLimit = $uptimeTopup;
-		}
-	# No topups available
-	} else {
-		if (defined($uptimeLimit->{':='}->{'Value'})) {
-			$alteredUptimeLimit = $uptimeLimit->{':='}->{'Value'};
-		}
-	}
-
-	# Uptime usage
-	if (!(defined($uptimeLimit->{':='}->{'Value'}) && $uptimeLimit->{':='}->{'Value'} == 0)) {
-		if (!defined($uptimeLimit->{':='}->{'Value'})) {
-			$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] Uptime => Usage total: ".$accountingUsage->{'TotalSessionTime'}.
-					"Min (Cap: Prepaid, Topups: ".$uptimeTopup."Min)");
-		} else {
-			$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] Uptime => Usage total: ".$accountingUsage->{'TotalSessionTime'}.
-					"Min (Cap: ".$uptimeLimit->{':='}->{'Value'}."Min, Topups: ".$uptimeTopup."Min)");
-		}
-	} else {
-		$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] Uptime => Usage total: ".$accountingUsage->{'TotalSessionTime'}.
-				"Min (Cap: Uncapped, Topups: ".$uptimeTopup."Min)");
-	}
-
-	# Get topups
+	# Check if there was any data returned at all
 	my $trafficTopup = 0;
 	if (defined($user->{'ConfigAttributes'}->{$TRAFFIC_TOPUPS_KEY})) {
 		$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] '".$TRAFFIC_TOPUPS_KEY."' is defined");
@@ -200,23 +194,60 @@ sub post_auth_hook
 		}
 	}
 
-	# Set allowed traffic usage
+	#
+	# Set the new uptime and traffic limits (limit, if any.. + topups)
+	#
+
+
+	# Uptime..
+	my $alteredUptimeLimit = 0;
+	if ($uptimeTopup > 0) {
+		if (defined($uptimeLimit->{':='}->{'Value'})) {
+			$alteredUptimeLimit = $uptimeLimit->{':='}->{'Value'} + $uptimeTopup;
+		} else {
+			$alteredUptimeLimit = $uptimeTopup;
+		}
+	} else {
+		if (defined($uptimeLimit->{':='}->{'Value'})) {
+			$alteredUptimeLimit = $uptimeLimit->{':='}->{'Value'};
+		}
+	}
+
+	# Traffic..
 	my $alteredTrafficLimit = 0;
-	# Topups available
 	if ($trafficTopup > 0) {
 		if (defined($trafficLimit->{':='}->{'Value'})) {
 			$alteredTrafficLimit = $trafficLimit->{':='}->{'Value'} + $trafficTopup;
 		} else {
 			$alteredTrafficLimit = $trafficTopup;
 		}
-	# No topups available
 	} else {
 		if (defined($trafficLimit->{':='}->{'Value'})) {
 			$alteredTrafficLimit = $trafficLimit->{':='}->{'Value'};
 		}
 	}
 
-	# Traffic usage
+
+	#
+	# Display our usages
+	#
+
+
+	# Uptime..
+	if (!(defined($uptimeLimit->{':='}->{'Value'}) && $uptimeLimit->{':='}->{'Value'} == 0)) {
+		if (!defined($uptimeLimit->{':='}->{'Value'})) {
+			$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] Uptime => Usage total: ".$accountingUsage->{'TotalSessionTime'}.
+					"Min (Cap: Prepaid, Topups: ".$uptimeTopup."Min)");
+		} else {
+			$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] Uptime => Usage total: ".$accountingUsage->{'TotalSessionTime'}.
+					"Min (Cap: ".$uptimeLimit->{':='}->{'Value'}."Min, Topups: ".$uptimeTopup."Min)");
+		}
+	} else {
+		$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] Uptime => Usage total: ".$accountingUsage->{'TotalSessionTime'}.
+				"Min (Cap: Uncapped, Topups: ".$uptimeTopup."Min)");
+	}
+
+	# Traffic..
 	if (!(defined($trafficLimit->{':='}->{'Value'}) && $trafficLimit->{':='}->{'Value'} == 0)) {
 		if (!defined($trafficLimit->{':='}->{'Value'})) {
 			$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] Bandwidth => Usage total: ".$accountingUsage->{'TotalDataUsage'}.
@@ -230,17 +261,16 @@ sub post_auth_hook
 				"Mb (Cap: Uncapped, Topups: ".$trafficTopup."Mb)");
 	}
 
-	# If traffic limit exceeded, cap user
-	if (!(defined($trafficLimit->{':='}->{'Value'}) && $trafficLimit->{':='}->{'Value'} == 0)) {
-		if ($accountingUsage->{'TotalDataUsage'} >= $alteredTrafficLimit) {
-			$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] Usage of ".$accountingUsage->{'TotalDataUsage'}.
-					"Mb exceeds allowed limit of ".$alteredTrafficLimit."Mb. Capped.");
-			return MOD_RES_NACK;
-		}
-	}
 
-	# If uptime limit exceeded, cap user
+	#
+	# Check if we've exceeded our limits
+	#
+
+
+	# Uptime..
 	if (!(defined($uptimeLimit->{':='}->{'Value'}) && $uptimeLimit->{':='}->{'Value'} == 0)) {
+
+		# Capped
 		if ($accountingUsage->{'TotalSessionTime'} >= $alteredUptimeLimit) {
 			$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] Usage of ".$accountingUsage->{'TotalSessionTime'}.
 					"Min exceeds allowed limit of ".$alteredUptimeLimit."Min. Capped.");
@@ -248,6 +278,17 @@ sub post_auth_hook
 		}
 	}
 
+	# Traffic
+	if (!(defined($trafficLimit->{':='}->{'Value'}) && $trafficLimit->{':='}->{'Value'} == 0)) {
+
+		# Capped
+		if ($accountingUsage->{'TotalDataUsage'} >= $alteredTrafficLimit) {
+			$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] Usage of ".$accountingUsage->{'TotalDataUsage'}.
+					"Mb exceeds allowed limit of ".$alteredTrafficLimit."Mb. Capped.");
+			return MOD_RES_NACK;
+		}
+	}
+
 	return MOD_RES_ACK;
 }
 
@@ -270,48 +311,64 @@ sub post_acct_hook
 
 	$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] POST ACCT HOOK");
 
-	my ($trafficLimit,$uptimeLimit);
-	
-	# Get uptime limit
+
+	#
+	# Get limits from attributes
+	#
+
+
+	# Check if there is an uptime limit
+	my $uptimeLimit;
 	if (defined($user->{'Attributes'}->{$UPTIME_LIMIT_KEY})) {
 		$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] '".$UPTIME_LIMIT_KEY."' is defined");
-		# Operator: :=
+
+		# Check for valid attribute operator: ':='
 		if (defined($user->{'Attributes'}->{$UPTIME_LIMIT_KEY}->{':='})) {
-			# Is it a number?
+
+			# Check for valid attribute value
 			if ($user->{'Attributes'}->{$UPTIME_LIMIT_KEY}->{':='}->{'Value'} =~ /^[0-9]+$/) {
 				$uptimeLimit = $user->{'Attributes'}->{$UPTIME_LIMIT_KEY};
 			} else {
 				$server->log(LOG_NOTICE,"[MOD_FEATURE_CAPPING] '".$user->{'Attributes'}->{$UPTIME_LIMIT_KEY}->{':='}->{'Value'}.
 						"' is NOT a numeric value");
 			}
+
 		} else {
 			$server->log(LOG_NOTICE,"[MOD_FEATURE_CAPPING] No valid operators for attribute '".
 					$user->{'Attributes'}->{$UPTIME_LIMIT_KEY}."'");
 		}
 	}
 
-	# Get traffic limit
+	# Check if there is a traffic limit
+	my $trafficLimit;
 	if (defined($user->{'Attributes'}->{$TRAFFIC_LIMIT_KEY})) {
 		$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] '".$TRAFFIC_LIMIT_KEY."' is defined");
-		# Operator: :=
+
+		# Check for valid attribute operator: ':='
 		if (defined($user->{'Attributes'}->{$TRAFFIC_LIMIT_KEY}->{':='})) {
-			# Is it a number?
+
+			# Check for valid attribute value
 			if ($user->{'Attributes'}->{$TRAFFIC_LIMIT_KEY}->{':='}->{'Value'} =~ /^[0-9]+$/) {
 				$trafficLimit = $user->{'Attributes'}->{$TRAFFIC_LIMIT_KEY};
 			} else {
 				$server->log(LOG_NOTICE,"[MOD_FEATURE_CAPPING] '".$user->{'Attributes'}->{$TRAFFIC_LIMIT_KEY}->{':='}->{'Value'}.
 						"' is NOT a numeric value");
 			}
+
 		} else {
 			$server->log(LOG_NOTICE,"[MOD_FEATURE_CAPPING] No valid operators for attribute '".
 					$user->{'Attributes'}->{$TRAFFIC_LIMIT_KEY}."'");
 		}
 	}
 
-	# Get the users' usage
+
+	#
+	# Get current traffic and uptime usage
+	#
+
+
+	# Loop with plugins to find anything supporting getting of usage
 	my $accountingUsage;
-	my $month = DateTime->from_epoch( epoch => $user->{'_Internal'}->{'Timestamp-Unix'} )->strftime('%Y-%m');
-	# Loop with plugins to find anyting supporting getting of usage
 	foreach my $module (@{$server->{'module_list'}}) {
 		# Do we have the correct plugin?
 		if ($module->{'Accounting_getUsage'}) {
@@ -327,13 +384,20 @@ sub post_acct_hook
 		}
 	}
 
-	# Get topups
+
+	#
+	# Get valid traffic and uptime topups
+	#
+
+
+	# Check if there was any data returned at all
 	my $uptimeTopup = 0;
 	if (defined($user->{'ConfigAttributes'}->{$TIME_TOPUPS_KEY})) {
 		$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] '".$TIME_TOPUPS_KEY."' is defined");
-		# Is there a value? 
+
+		# Check if there is a value
 		if (defined($user->{'ConfigAttributes'}->{$TIME_TOPUPS_KEY}->[0])) {
-			# Is it a number?
+			# Check if the value is of a valid type
 			if ($user->{'ConfigAttributes'}->{$TIME_TOPUPS_KEY}->[0] =~ /^[0-9]+$/) {
 				$uptimeTopup = $user->{'ConfigAttributes'}->{$TIME_TOPUPS_KEY}->[0];
 			} else {
@@ -345,37 +409,7 @@ sub post_acct_hook
 		}
 	}
 
-	# Set allowed uptime usage
-	my $alteredUptimeLimit = 0;
-	# Topups available
-	if ($uptimeTopup > 0) {
-		if (defined($uptimeLimit->{':='}->{'Value'})) {
-			$alteredUptimeLimit = $uptimeLimit->{':='}->{'Value'} + $uptimeTopup;
-		} else {
-			$alteredUptimeLimit = $uptimeTopup;
-		}
-	# No topups available
-	} else {
-		if (defined($uptimeLimit->{':='}->{'Value'})) {
-			$alteredUptimeLimit = $uptimeLimit->{':='}->{'Value'};
-		}
-	}
-
-	# Uptime usage
-	if (!(defined($uptimeLimit->{':='}->{'Value'}) && $uptimeLimit->{':='}->{'Value'} == 0)) {
-		if (!defined($uptimeLimit->{':='}->{'Value'})) {
-			$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] Uptime => Usage total: ".$accountingUsage->{'TotalSessionTime'}.
-					"Min (Cap: Prepaid, Topups: ".$uptimeTopup."Min)");
-		} else {
-			$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] Uptime => Usage total: ".$accountingUsage->{'TotalSessionTime'}.
-					"Min (Cap: ".$uptimeLimit->{':='}->{'Value'}."Min, Topups: ".$uptimeTopup."Min)");
-		}
-	} else {
-		$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] Uptime => Usage total: ".$accountingUsage->{'TotalSessionTime'}.
-				"Min (Cap: Uncapped, Topups: ".$uptimeTopup."Min)");
-	}
-
-	# Get topups
+	# Check if there was any data returned at all
 	my $trafficTopup = 0;
 	if (defined($user->{'ConfigAttributes'}->{$TRAFFIC_TOPUPS_KEY})) {
 		$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] '".$TRAFFIC_TOPUPS_KEY."' is defined");
@@ -393,23 +427,60 @@ sub post_acct_hook
 		}
 	}
 
-	# Set allowed traffic usage
+	#
+	# Set the new uptime and traffic limits (limit, if any.. + topups)
+	#
+
+
+	# Uptime..
+	my $alteredUptimeLimit = 0;
+	if ($uptimeTopup > 0) {
+		if (defined($uptimeLimit->{':='}->{'Value'})) {
+			$alteredUptimeLimit = $uptimeLimit->{':='}->{'Value'} + $uptimeTopup;
+		} else {
+			$alteredUptimeLimit = $uptimeTopup;
+		}
+	} else {
+		if (defined($uptimeLimit->{':='}->{'Value'})) {
+			$alteredUptimeLimit = $uptimeLimit->{':='}->{'Value'};
+		}
+	}
+
+	# Traffic..
 	my $alteredTrafficLimit = 0;
-	# Topups available
 	if ($trafficTopup > 0) {
 		if (defined($trafficLimit->{':='}->{'Value'})) {
 			$alteredTrafficLimit = $trafficLimit->{':='}->{'Value'} + $trafficTopup;
 		} else {
 			$alteredTrafficLimit = $trafficTopup;
 		}
-	# No topups available
 	} else {
 		if (defined($trafficLimit->{':='}->{'Value'})) {
 			$alteredTrafficLimit = $trafficLimit->{':='}->{'Value'};
 		}
 	}
 
-	# Traffic usage
+
+	#
+	# Display our usages
+	#
+
+
+	# Uptime..
+	if (!(defined($uptimeLimit->{':='}->{'Value'}) && $uptimeLimit->{':='}->{'Value'} == 0)) {
+		if (!defined($uptimeLimit->{':='}->{'Value'})) {
+			$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] Uptime => Usage total: ".$accountingUsage->{'TotalSessionTime'}.
+					"Min (Cap: Prepaid, Topups: ".$uptimeTopup."Min)");
+		} else {
+			$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] Uptime => Usage total: ".$accountingUsage->{'TotalSessionTime'}.
+					"Min (Cap: ".$uptimeLimit->{':='}->{'Value'}."Min, Topups: ".$uptimeTopup."Min)");
+		}
+	} else {
+		$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] Uptime => Usage total: ".$accountingUsage->{'TotalSessionTime'}.
+				"Min (Cap: Uncapped, Topups: ".$uptimeTopup."Min)");
+	}
+
+	# Traffic..
 	if (!(defined($trafficLimit->{':='}->{'Value'}) && $trafficLimit->{':='}->{'Value'} == 0)) {
 		if (!defined($trafficLimit->{':='}->{'Value'})) {
 			$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] Bandwidth => Usage total: ".$accountingUsage->{'TotalDataUsage'}.
@@ -423,17 +494,16 @@ sub post_acct_hook
 				"Mb (Cap: Uncapped, Topups: ".$trafficTopup."Mb)");
 	}
 
-	# If traffic limit exceeded, cap user
-	if (!(defined($trafficLimit->{':='}->{'Value'}) && $trafficLimit->{':='}->{'Value'} == 0)) {
-		if ($accountingUsage->{'TotalDataUsage'} >= $alteredTrafficLimit) {
-			$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] Usage of ".$accountingUsage->{'TotalDataUsage'}.
-					"Mb exceeds allowed limit of ".$alteredTrafficLimit."Mb. Capped.");
-			return MOD_RES_NACK;
-		}
-	}
 
-	# If uptime limit exceeded, cap user
+	#
+	# Check if we've exceeded our limits
+	#
+
+
+	# Uptime..
 	if (!(defined($uptimeLimit->{':='}->{'Value'}) && $uptimeLimit->{':='}->{'Value'} == 0)) {
+
+		# Capped
 		if ($accountingUsage->{'TotalSessionTime'} >= $alteredUptimeLimit) {
 			$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] Usage of ".$accountingUsage->{'TotalSessionTime'}.
 					"Min exceeds allowed limit of ".$alteredUptimeLimit."Min. Capped.");
@@ -441,6 +511,17 @@ sub post_acct_hook
 		}
 	}
 
+	# Traffic
+	if (!(defined($trafficLimit->{':='}->{'Value'}) && $trafficLimit->{':='}->{'Value'} == 0)) {
+
+		# Capped
+		if ($accountingUsage->{'TotalDataUsage'} >= $alteredTrafficLimit) {
+			$server->log(LOG_DEBUG,"[MOD_FEATURE_CAPPING] Usage of ".$accountingUsage->{'TotalDataUsage'}.
+					"Mb exceeds allowed limit of ".$alteredTrafficLimit."Mb. Capped.");
+			return MOD_RES_NACK;
+		}
+	}
+
 	return MOD_RES_ACK;
 }