diff --git a/bin/node/runtime/src/impls.rs b/bin/node/runtime/src/impls.rs
index de2efdae4af2ead5541c8f48b2d671ab1184fbb1..1b9006e75e4b1373a692fe004a0ebaecca87256e 100644
--- a/bin/node/runtime/src/impls.rs
+++ b/bin/node/runtime/src/impls.rs
@@ -340,7 +340,7 @@ mod tests {
 			mb,
 			10 * mb,
 			Weight::max_value() / 2,
-			Weight::max_value()
+			Weight::max_value(),
 		].into_iter().for_each(|i| {
 			run_with_system_weight(i, || {
 				let next = TargetedFeeAdjustment::<TargetBlockFullness>::convert(Fixed64::default());
diff --git a/frame/assets/src/lib.rs b/frame/assets/src/lib.rs
index 6f4647ac2e4f16b3f2c86de193418d4203ab4243..314a8d456940fa56296b6882411e049714fd78fa 100644
--- a/frame/assets/src/lib.rs
+++ b/frame/assets/src/lib.rs
@@ -240,7 +240,7 @@ impl<T: Trait> Module<T> {
 mod tests {
 	use super::*;
 
-	use support::{impl_outer_origin, assert_ok, assert_noop, parameter_types};
+	use support::{impl_outer_origin, assert_ok, assert_noop, parameter_types, weights::Weight};
 	use primitives::H256;
 	// The testing primitives are very useful for avoiding having to work with signatures
 	// or public keys. `u64` is used as the `AccountId` and no `Signature`s are required.
@@ -257,7 +257,7 @@ mod tests {
 	pub struct Test;
 	parameter_types! {
 		pub const BlockHashCount: u64 = 250;
-		pub const MaximumBlockWeight: u32 = 1024;
+		pub const MaximumBlockWeight: Weight = 1024;
 		pub const MaximumBlockLength: u32 = 2 * 1024;
 		pub const AvailableBlockRatio: Perbill = Perbill::one();
 	}
diff --git a/frame/aura/src/mock.rs b/frame/aura/src/mock.rs
index f476fd1826ae3a72c7c303ce9d1e00a9b87d58d7..c95a36e131518fb6727dd0cfe7ae3413971df54f 100644
--- a/frame/aura/src/mock.rs
+++ b/frame/aura/src/mock.rs
@@ -24,7 +24,7 @@ use sr_primitives::{
 	traits::IdentityLookup, Perbill,
 	testing::{Header, UintAuthorityId},
 };
-use support::{impl_outer_origin, parameter_types};
+use support::{impl_outer_origin, parameter_types, weights::Weight};
 use runtime_io;
 use primitives::H256;
 
@@ -38,7 +38,7 @@ pub struct Test;
 
 parameter_types! {
 	pub const BlockHashCount: u64 = 250;
-	pub const MaximumBlockWeight: u32 = 1024;
+	pub const MaximumBlockWeight: Weight = 1024;
 	pub const MaximumBlockLength: u32 = 2 * 1024;
 	pub const AvailableBlockRatio: Perbill = Perbill::one();
 	pub const MinimumPeriod: u64 = 1;
diff --git a/frame/authority-discovery/src/lib.rs b/frame/authority-discovery/src/lib.rs
index b3a5ebded56f492cec6090ece2a1a5e6d0a4b054..6c9e316252d9bfc5391aeb67a0832525b0218ea8 100644
--- a/frame/authority-discovery/src/lib.rs
+++ b/frame/authority-discovery/src/lib.rs
@@ -100,7 +100,7 @@ mod tests {
 		testing::{Header, UintAuthorityId}, traits::{ConvertInto, IdentityLookup, OpaqueKeys},
 		Perbill, KeyTypeId,
 	};
-	use support::{impl_outer_origin, parameter_types};
+	use support::{impl_outer_origin, parameter_types, weights::Weight};
 
 	type AuthorityDiscovery = Module<Test>;
 	type SessionIndex = u32;
@@ -144,7 +144,7 @@ mod tests {
 		pub const Offset: BlockNumber = 0;
 		pub const UncleGenerations: u64 = 0;
 		pub const BlockHashCount: u64 = 250;
-		pub const MaximumBlockWeight: u32 = 1024;
+		pub const MaximumBlockWeight: Weight = 1024;
 		pub const MaximumBlockLength: u32 = 2 * 1024;
 		pub const AvailableBlockRatio: Perbill = Perbill::one();
 	}
diff --git a/frame/authorship/src/lib.rs b/frame/authorship/src/lib.rs
index b4118b93a0d61a553c2d67c6eb8a61e3ca9051ad..de7a07520ebbd1d3d5ca64174307d65eadf59fb7 100644
--- a/frame/authorship/src/lib.rs
+++ b/frame/authorship/src/lib.rs
@@ -365,7 +365,7 @@ mod tests {
 	use sr_primitives::{
 		traits::{BlakeTwo256, IdentityLookup}, testing::Header, generic::DigestItem, Perbill,
 	};
-	use support::{parameter_types, impl_outer_origin, ConsensusEngineId};
+	use support::{parameter_types, impl_outer_origin, ConsensusEngineId, weights::Weight};
 
 	impl_outer_origin!{
 		pub enum Origin for Test {}
@@ -376,7 +376,7 @@ mod tests {
 
 	parameter_types! {
 		pub const BlockHashCount: u64 = 250;
-		pub const MaximumBlockWeight: u32 = 1024;
+		pub const MaximumBlockWeight: Weight = 1024;
 		pub const MaximumBlockLength: u32 = 2 * 1024;
 		pub const AvailableBlockRatio: Perbill = Perbill::one();
 	}
diff --git a/frame/babe/src/mock.rs b/frame/babe/src/mock.rs
index d7aed7b42a3fe27e513ec7276ea3e1ccecd4d2d8..847b2a75e1c263af36f3747bbd5174683540a6c0 100644
--- a/frame/babe/src/mock.rs
+++ b/frame/babe/src/mock.rs
@@ -23,7 +23,7 @@ use sr_primitives::{
 	traits::IdentityLookup, Perbill, testing::{Header, UintAuthorityId}, impl_opaque_keys,
 };
 use sr_version::RuntimeVersion;
-use support::{impl_outer_origin, parameter_types};
+use support::{impl_outer_origin, parameter_types, weights::Weight};
 use runtime_io;
 use primitives::{H256, Blake2Hasher};
 
@@ -39,7 +39,7 @@ pub struct Test;
 
 parameter_types! {
 	pub const BlockHashCount: u64 = 250;
-	pub const MaximumBlockWeight: u32 = 1024;
+	pub const MaximumBlockWeight: Weight = 1024;
 	pub const MaximumBlockLength: u32 = 2 * 1024;
 	pub const AvailableBlockRatio: Perbill = Perbill::one();
 	pub const MinimumPeriod: u64 = 1;
diff --git a/frame/balances/src/mock.rs b/frame/balances/src/mock.rs
index 62eabd1cf04d91494353a9d67e936675d06035c5..1756c77ce20e5fa8e337473cdc3eed003a81e5d7 100644
--- a/frame/balances/src/mock.rs
+++ b/frame/balances/src/mock.rs
@@ -55,7 +55,7 @@ impl Get<u64> for CreationFee {
 pub struct Runtime;
 parameter_types! {
 	pub const BlockHashCount: u64 = 250;
-	pub const MaximumBlockWeight: u32 = 1024;
+	pub const MaximumBlockWeight: Weight = 1024;
 	pub const MaximumBlockLength: u32 = 2 * 1024;
 	pub const AvailableBlockRatio: Perbill = Perbill::one();
 }
diff --git a/frame/collective/src/lib.rs b/frame/collective/src/lib.rs
index eff8366f0707c56f3f1f351780ed02f9c17432b6..dec87da2465a097b7f9c6814250e667487bd6330 100644
--- a/frame/collective/src/lib.rs
+++ b/frame/collective/src/lib.rs
@@ -378,7 +378,7 @@ impl<
 #[cfg(test)]
 mod tests {
 	use super::*;
-	use support::{Hashable, assert_ok, assert_noop, parameter_types};
+	use support::{Hashable, assert_ok, assert_noop, parameter_types, weights::Weight};
 	use system::{EventRecord, Phase};
 	use hex_literal::hex;
 	use primitives::H256;
@@ -390,7 +390,7 @@ mod tests {
 
 	parameter_types! {
 		pub const BlockHashCount: u64 = 250;
-		pub const MaximumBlockWeight: u32 = 1024;
+		pub const MaximumBlockWeight: Weight = 1024;
 		pub const MaximumBlockLength: u32 = 2 * 1024;
 		pub const AvailableBlockRatio: Perbill = Perbill::one();
 	}
diff --git a/frame/contracts/src/tests.rs b/frame/contracts/src/tests.rs
index d06565ed8ecb5ec2ec1783a7a963b5e2878fb2ba..6129784d41e353b37ef367b8dd50d900b1521409 100644
--- a/frame/contracts/src/tests.rs
+++ b/frame/contracts/src/tests.rs
@@ -35,7 +35,7 @@ use sr_primitives::{
 use support::{
 	assert_ok, assert_err, impl_outer_dispatch, impl_outer_event, impl_outer_origin, parameter_types,
 	storage::child, StorageMap, StorageValue, traits::{Currency, Get},
-	weights::{DispatchInfo, DispatchClass},
+	weights::{DispatchInfo, DispatchClass, Weight},
 };
 use std::{cell::RefCell, sync::atomic::{AtomicUsize, Ordering}};
 use primitives::storage::well_known_keys;
@@ -94,7 +94,7 @@ impl Get<u64> for BlockGasLimit {
 pub struct Test;
 parameter_types! {
 	pub const BlockHashCount: u64 = 250;
-	pub const MaximumBlockWeight: u32 = 1024;
+	pub const MaximumBlockWeight: Weight = 1024;
 	pub const MaximumBlockLength: u32 = 2 * 1024;
 	pub const AvailableBlockRatio: Perbill = Perbill::one();
 }
diff --git a/frame/democracy/src/lib.rs b/frame/democracy/src/lib.rs
index 3ff6c1e2ecc72a2e1bc18a7c7a7354b586fa78ec..984204446100d633d30f541e51769f43d6ce33fd 100644
--- a/frame/democracy/src/lib.rs
+++ b/frame/democracy/src/lib.rs
@@ -972,7 +972,8 @@ mod tests {
 	use super::*;
 	use support::{
 		impl_outer_origin, impl_outer_dispatch, assert_noop, assert_ok, parameter_types,
-		traits::Contains
+		traits::Contains,
+		weights::Weight,
 	};
 	use primitives::H256;
 	use sr_primitives::{traits::{BlakeTwo256, IdentityLookup, Bounded}, testing::Header, Perbill};
@@ -1000,7 +1001,7 @@ mod tests {
 	pub struct Test;
 	parameter_types! {
 		pub const BlockHashCount: u64 = 250;
-		pub const MaximumBlockWeight: u32 = 1024;
+		pub const MaximumBlockWeight: Weight = 1024;
 		pub const MaximumBlockLength: u32 = 2 * 1024;
 		pub const AvailableBlockRatio: Perbill = Perbill::one();
 	}
diff --git a/frame/elections-phragmen/src/lib.rs b/frame/elections-phragmen/src/lib.rs
index 4ae237e378309a3437cba1d21dc5b46f1a351004..338ceeba52790fb2941420bb8a4c4e03e68c2bbc 100644
--- a/frame/elections-phragmen/src/lib.rs
+++ b/frame/elections-phragmen/src/lib.rs
@@ -743,7 +743,7 @@ impl<T: Trait> Module<T> {
 mod tests {
 	use super::*;
 	use std::cell::RefCell;
-	use support::{assert_ok, assert_noop, parameter_types};
+	use support::{assert_ok, assert_noop, parameter_types, weights::Weight};
 	use substrate_test_utils::assert_eq_uvec;
 	use primitives::H256;
 	use sr_primitives::{
@@ -754,7 +754,7 @@ mod tests {
 
 	parameter_types! {
 		pub const BlockHashCount: u64 = 250;
-		pub const MaximumBlockWeight: u32 = 1024;
+		pub const MaximumBlockWeight: Weight = 1024;
 		pub const MaximumBlockLength: u32 = 2 * 1024;
 		pub const AvailableBlockRatio: Perbill = Perbill::one();
 	}
diff --git a/frame/elections/src/mock.rs b/frame/elections/src/mock.rs
index 77b13d74a139f42d7aab7ad6a76741cdd70c8342..173a45a24858697cbbc8987ebed09ea6c7c491aa 100644
--- a/frame/elections/src/mock.rs
+++ b/frame/elections/src/mock.rs
@@ -21,7 +21,8 @@
 use std::cell::RefCell;
 use support::{
 	StorageValue, StorageMap, parameter_types, assert_ok,
-	traits::{Get, ChangeMembers, Currency}
+	traits::{Get, ChangeMembers, Currency},
+	weights::Weight,
 };
 use primitives::H256;
 use sr_primitives::{
@@ -32,7 +33,7 @@ use crate as elections;
 
 parameter_types! {
 	pub const BlockHashCount: u64 = 250;
-	pub const MaximumBlockWeight: u32 = 1024;
+	pub const MaximumBlockWeight: Weight = 1024;
 	pub const MaximumBlockLength: u32 = 2 * 1024;
 	pub const AvailableBlockRatio: Perbill = Perbill::one();
 }
diff --git a/frame/example/src/lib.rs b/frame/example/src/lib.rs
index cf22d38f6944a1729db524f510a708879fb925ef..a73e0d2868884ed13ed05fea02d6e612a303d483 100644
--- a/frame/example/src/lib.rs
+++ b/frame/example/src/lib.rs
@@ -287,7 +287,7 @@ impl<T: balances::Trait> WeighData<(&BalanceOf<T>,)> for WeightForSetDummy<T>
 {
 	fn weigh_data(&self, target: (&BalanceOf<T>,)) -> Weight {
 		let multiplier = self.0;
-		(*target.0 * multiplier).saturated_into::<u32>()
+		(*target.0 * multiplier).saturated_into::<Weight>()
 	}
 }
 
@@ -665,7 +665,7 @@ mod tests {
 	pub struct Test;
 	parameter_types! {
 		pub const BlockHashCount: u64 = 250;
-		pub const MaximumBlockWeight: u32 = 1024;
+		pub const MaximumBlockWeight: Weight = 1024;
 		pub const MaximumBlockLength: u32 = 2 * 1024;
 		pub const AvailableBlockRatio: Perbill = Perbill::one();
 	}
diff --git a/frame/executive/src/lib.rs b/frame/executive/src/lib.rs
index d160bd7bdd4802a871850761e08f1f0b1a420d7e..d5dc5fa135f4bb7c8ca376aae56655f360ef1e83 100644
--- a/frame/executive/src/lib.rs
+++ b/frame/executive/src/lib.rs
@@ -393,7 +393,7 @@ mod tests {
 	pub struct Runtime;
 	parameter_types! {
 		pub const BlockHashCount: u64 = 250;
-		pub const MaximumBlockWeight: u32 = 1024;
+		pub const MaximumBlockWeight: Weight = 1024;
 		pub const MaximumBlockLength: u32 = 2 * 1024;
 		pub const AvailableBlockRatio: Perbill = Perbill::one();
 	}
@@ -641,7 +641,7 @@ mod tests {
 			assert!(Executive::apply_extrinsic(x2.clone()).unwrap().is_ok());
 
 			// default weight for `TestXt` == encoded length.
-			assert_eq!(<system::Module<Runtime>>::all_extrinsics_weight(), (3 * len) as u32);
+			assert_eq!(<system::Module<Runtime>>::all_extrinsics_weight(), (3 * len) as Weight);
 			assert_eq!(<system::Module<Runtime>>::all_extrinsics_len(), 3 * len);
 
 			let _ = <system::Module<Runtime>>::finalize();
diff --git a/frame/finality-tracker/src/lib.rs b/frame/finality-tracker/src/lib.rs
index 7d03f1bc7d7d796864bf32c595559bf05eb995d4..2be496ab459a274fc2422914fde95d7a157cddb5 100644
--- a/frame/finality-tracker/src/lib.rs
+++ b/frame/finality-tracker/src/lib.rs
@@ -199,7 +199,7 @@ mod tests {
 		testing::Header, Perbill,
 		traits::{BlakeTwo256, IdentityLookup, OnFinalize, Header as HeaderT},
 	};
-	use support::{assert_ok, impl_outer_origin, parameter_types};
+	use support::{assert_ok, impl_outer_origin, parameter_types, weights::Weight};
 	use frame_system as system;
 	use std::cell::RefCell;
 
@@ -230,7 +230,7 @@ mod tests {
 
 	parameter_types! {
 		pub const BlockHashCount: u64 = 250;
-		pub const MaximumBlockWeight: u32 = 1024;
+		pub const MaximumBlockWeight: Weight = 1024;
 		pub const MaximumBlockLength: u32 = 2 * 1024;
 		pub const AvailableBlockRatio: Perbill = Perbill::one();
 	}
diff --git a/frame/generic-asset/src/mock.rs b/frame/generic-asset/src/mock.rs
index 57b13760fa03d2ed90d59dd8a33dfb9abbc62b77..36dea84d66d58673add8f7f92f8cfc75de3514fd 100644
--- a/frame/generic-asset/src/mock.rs
+++ b/frame/generic-asset/src/mock.rs
@@ -26,7 +26,7 @@ use sr_primitives::{
 	traits::{BlakeTwo256, IdentityLookup},
 };
 use primitives::H256;
-use support::{parameter_types, impl_outer_event, impl_outer_origin};
+use support::{parameter_types, impl_outer_event, impl_outer_origin, weights::Weight};
 
 use super::*;
 
@@ -41,7 +41,7 @@ impl_outer_origin! {
 pub struct Test;
 parameter_types! {
 	pub const BlockHashCount: u64 = 250;
-	pub const MaximumBlockWeight: u32 = 1024;
+	pub const MaximumBlockWeight: Weight = 1024;
 	pub const MaximumBlockLength: u32 = 2 * 1024;
 	pub const AvailableBlockRatio: Perbill = Perbill::one();
 }
diff --git a/frame/grandpa/src/mock.rs b/frame/grandpa/src/mock.rs
index c6ea2075575c545ecb16f09129ec5346f6f3068f..3fdf807f24ad170f7da87ce32f7a5842cd044a30 100644
--- a/frame/grandpa/src/mock.rs
+++ b/frame/grandpa/src/mock.rs
@@ -20,7 +20,7 @@
 
 use sr_primitives::{Perbill, DigestItem, traits::IdentityLookup, testing::{Header, UintAuthorityId}};
 use runtime_io;
-use support::{impl_outer_origin, impl_outer_event, parameter_types};
+use support::{impl_outer_origin, impl_outer_event, parameter_types, weights::Weight};
 use primitives::H256;
 use codec::{Encode, Decode};
 use crate::{AuthorityId, AuthorityList, GenesisConfig, Trait, Module, ConsensusLog};
@@ -43,7 +43,7 @@ impl Trait for Test {
 }
 parameter_types! {
 	pub const BlockHashCount: u64 = 250;
-	pub const MaximumBlockWeight: u32 = 1024;
+	pub const MaximumBlockWeight: Weight = 1024;
 	pub const MaximumBlockLength: u32 = 2 * 1024;
 	pub const AvailableBlockRatio: Perbill = Perbill::one();
 }
diff --git a/frame/im-online/src/mock.rs b/frame/im-online/src/mock.rs
index 4be33c44ed59e61b4ca3a8299c5ce0e2d44879f9..650353e6f9ac32aa2113978cfab8aeb51bb5ec36 100644
--- a/frame/im-online/src/mock.rs
+++ b/frame/im-online/src/mock.rs
@@ -26,7 +26,7 @@ use sr_staking_primitives::{SessionIndex, offence::ReportOffence};
 use sr_primitives::testing::{Header, UintAuthorityId, TestXt};
 use sr_primitives::traits::{IdentityLookup, BlakeTwo256, ConvertInto};
 use primitives::H256;
-use support::{impl_outer_origin, impl_outer_dispatch, parameter_types};
+use support::{impl_outer_origin, impl_outer_dispatch, parameter_types, weights::Weight};
 use {runtime_io, system};
 
 impl_outer_origin!{
@@ -96,7 +96,7 @@ pub struct Runtime;
 
 parameter_types! {
 	pub const BlockHashCount: u64 = 250;
-	pub const MaximumBlockWeight: u32 = 1024;
+	pub const MaximumBlockWeight: Weight = 1024;
 	pub const MaximumBlockLength: u32 = 2 * 1024;
 	pub const AvailableBlockRatio: Perbill = Perbill::one();
 }
diff --git a/frame/indices/src/mock.rs b/frame/indices/src/mock.rs
index 427fd87c47e7d14d9383e9708ea96f8869891649..43b009a54491f662204bf53d49fa6c2cbf23c2bc 100644
--- a/frame/indices/src/mock.rs
+++ b/frame/indices/src/mock.rs
@@ -23,7 +23,7 @@ use ref_thread_local::{ref_thread_local, RefThreadLocal};
 use sr_primitives::testing::Header;
 use sr_primitives::Perbill;
 use primitives::H256;
-use support::{impl_outer_origin, parameter_types};
+use support::{impl_outer_origin, parameter_types, weights::Weight};
 use {runtime_io, system};
 use crate::{GenesisConfig, Module, Trait, IsDeadAccount, OnNewAccount, ResolveHint};
 
@@ -67,7 +67,7 @@ impl ResolveHint<u64, u64> for TestResolveHint {
 pub struct Runtime;
 parameter_types! {
 	pub const BlockHashCount: u64 = 250;
-	pub const MaximumBlockWeight: u32 = 1024;
+	pub const MaximumBlockWeight: Weight = 1024;
 	pub const MaximumBlockLength: u32 = 2 * 1024;
 	pub const AvailableBlockRatio: Perbill = Perbill::one();
 }
diff --git a/frame/membership/src/lib.rs b/frame/membership/src/lib.rs
index 472220cffdd51f1175b06a79b1b0c36f84d30a4c..0adddc1816d187e4150be5bf35d92807c18eeb95 100644
--- a/frame/membership/src/lib.rs
+++ b/frame/membership/src/lib.rs
@@ -194,7 +194,7 @@ mod tests {
 	use super::*;
 
 	use std::cell::RefCell;
-	use support::{assert_ok, assert_noop, impl_outer_origin, parameter_types};
+	use support::{assert_ok, assert_noop, impl_outer_origin, parameter_types, weights::Weight};
 	use primitives::H256;
 	// The testing primitives are very useful for avoiding having to work with signatures
 	// or public keys. `u64` is used as the `AccountId` and no `Signature`s are requried.
@@ -212,7 +212,7 @@ mod tests {
 	pub struct Test;
 	parameter_types! {
 		pub const BlockHashCount: u64 = 250;
-		pub const MaximumBlockWeight: u32 = 1024;
+		pub const MaximumBlockWeight: Weight = 1024;
 		pub const MaximumBlockLength: u32 = 2 * 1024;
 		pub const AvailableBlockRatio: Perbill = Perbill::one();
 	}
diff --git a/frame/nicks/src/lib.rs b/frame/nicks/src/lib.rs
index 94b7043c17c94304032824d4d46776652a0c874d..a82b3d15a99e755751e085c375e800b058f94608 100644
--- a/frame/nicks/src/lib.rs
+++ b/frame/nicks/src/lib.rs
@@ -229,7 +229,7 @@ decl_module! {
 mod tests {
 	use super::*;
 
-	use support::{assert_ok, assert_noop, impl_outer_origin, parameter_types};
+	use support::{assert_ok, assert_noop, impl_outer_origin, parameter_types, weights::Weight};
 	use primitives::H256;
 	use system::EnsureSignedBy;
 	// The testing primitives are very useful for avoiding having to work with signatures
@@ -249,7 +249,7 @@ mod tests {
 	pub struct Test;
 	parameter_types! {
 		pub const BlockHashCount: u64 = 250;
-		pub const MaximumBlockWeight: u32 = 1024;
+		pub const MaximumBlockWeight: Weight = 1024;
 		pub const MaximumBlockLength: u32 = 2 * 1024;
 		pub const AvailableBlockRatio: Perbill = Perbill::one();
 	}
diff --git a/frame/offences/src/mock.rs b/frame/offences/src/mock.rs
index 491c9681b1cd543c1f6cfa991430ab34397c2999..dc331b3147da37f40d83d7bf1cdd3e29ff4eca01 100644
--- a/frame/offences/src/mock.rs
+++ b/frame/offences/src/mock.rs
@@ -29,7 +29,10 @@ use sr_staking_primitives::{
 use sr_primitives::testing::Header;
 use sr_primitives::traits::{IdentityLookup, BlakeTwo256};
 use substrate_primitives::H256;
-use support::{impl_outer_origin, impl_outer_event, parameter_types, StorageMap, StorageDoubleMap};
+use support::{
+	impl_outer_origin, impl_outer_event, parameter_types, StorageMap, StorageDoubleMap,
+	weights::Weight,
+};
 use {runtime_io, system};
 
 impl_outer_origin!{
@@ -65,7 +68,7 @@ pub fn with_on_offence_fractions<R, F: FnOnce(&mut Vec<Perbill>) -> R>(f: F) ->
 pub struct Runtime;
 parameter_types! {
 	pub const BlockHashCount: u64 = 250;
-	pub const MaximumBlockWeight: u32 = 1024;
+	pub const MaximumBlockWeight: Weight = 1024;
 	pub const MaximumBlockLength: u32 = 2 * 1024;
 	pub const AvailableBlockRatio: Perbill = Perbill::one();
 }
diff --git a/frame/randomness-collective-flip/src/lib.rs b/frame/randomness-collective-flip/src/lib.rs
index 595249b98606406911e01dcb9669f3c2b70644cb..ba5f0f79f4717f36a9a077b316dc47111cf4945f 100644
--- a/frame/randomness-collective-flip/src/lib.rs
+++ b/frame/randomness-collective-flip/src/lib.rs
@@ -156,7 +156,7 @@ mod tests {
 	use sr_primitives::{
 		Perbill, traits::{BlakeTwo256, OnInitialize, Header as _, IdentityLookup}, testing::Header,
 	};
-	use support::{impl_outer_origin, parameter_types, traits::Randomness};
+	use support::{impl_outer_origin, parameter_types, weights::Weight, traits::Randomness};
 
 	#[derive(Clone, PartialEq, Eq)]
 	pub struct Test;
@@ -167,7 +167,7 @@ mod tests {
 
 	parameter_types! {
 		pub const BlockHashCount: u64 = 250;
-		pub const MaximumBlockWeight: u32 = 1024;
+		pub const MaximumBlockWeight: Weight = 1024;
 		pub const MaximumBlockLength: u32 = 2 * 1024;
 		pub const AvailableBlockRatio: Perbill = Perbill::one();
 	}
diff --git a/frame/scored-pool/src/mock.rs b/frame/scored-pool/src/mock.rs
index 394f486a8bec383bf28e52eef7a0a1c4c7a47aec..b2e1b29cbf22b11f59e4d69b94dc81fbf596bc02 100644
--- a/frame/scored-pool/src/mock.rs
+++ b/frame/scored-pool/src/mock.rs
@@ -19,7 +19,7 @@
 use super::*;
 
 use std::cell::RefCell;
-use support::{impl_outer_origin, parameter_types};
+use support::{impl_outer_origin, parameter_types, weights::Weight};
 use primitives::H256;
 // The testing primitives are very useful for avoiding having to work with signatures
 // or public keys. `u64` is used as the `AccountId` and no `Signature`s are requried.
@@ -45,7 +45,7 @@ parameter_types! {
 	pub const ScoreOrigin: u64 = 3;
 
 	pub const BlockHashCount: u64 = 250;
-	pub const MaximumBlockWeight: u32 = 1024;
+	pub const MaximumBlockWeight: Weight = 1024;
 	pub const MaximumBlockLength: u32 = 2 * 1024;
 	pub const AvailableBlockRatio: Perbill = Perbill::one();
 
diff --git a/frame/session/src/mock.rs b/frame/session/src/mock.rs
index cb95a35570bc1e37455446fff6404e825f83c32c..4a2c1d45c3adc96ab9ffcd23128faac752ddb187 100644
--- a/frame/session/src/mock.rs
+++ b/frame/session/src/mock.rs
@@ -18,7 +18,7 @@
 
 use super::*;
 use std::cell::RefCell;
-use support::{impl_outer_origin, parameter_types};
+use support::{impl_outer_origin, parameter_types, weights::Weight};
 use primitives::{crypto::key_types::DUMMY, H256};
 use sr_primitives::{
 	Perbill, impl_opaque_keys, traits::{BlakeTwo256, IdentityLookup, ConvertInto},
@@ -152,7 +152,7 @@ pub struct Test;
 
 parameter_types! {
 	pub const BlockHashCount: u64 = 250;
-	pub const MaximumBlockWeight: u32 = 1024;
+	pub const MaximumBlockWeight: Weight = 1024;
 	pub const MaximumBlockLength: u32 = 2 * 1024;
 	pub const MinimumPeriod: u64 = 5;
 	pub const AvailableBlockRatio: Perbill = Perbill::one();
diff --git a/frame/staking/src/mock.rs b/frame/staking/src/mock.rs
index f6068a477307c99d16315df3c7513582443cbd5b..91cffb8b7424a0521098d5b5d408c7afb42ca83d 100644
--- a/frame/staking/src/mock.rs
+++ b/frame/staking/src/mock.rs
@@ -24,8 +24,11 @@ use sr_primitives::testing::{Header, UintAuthorityId};
 use sr_staking_primitives::{SessionIndex, offence::{OffenceDetails, OnOffenceHandler}};
 use primitives::{H256, crypto::key_types};
 use runtime_io;
-use support::{assert_ok, impl_outer_origin, parameter_types, StorageLinkedMap, StorageValue};
-use support::traits::{Currency, Get, FindAuthor};
+use support::{
+	assert_ok, impl_outer_origin, parameter_types, StorageLinkedMap, StorageValue,
+	traits::{Currency, Get, FindAuthor},
+	weights::Weight,
+};
 use crate::{
 	EraIndex, GenesisConfig, Module, Trait, StakerStatus, ValidatorPrefs, RewardDestination,
 	Nominators, inflation
@@ -114,7 +117,7 @@ impl FindAuthor<u64> for Author11 {
 pub struct Test;
 parameter_types! {
 	pub const BlockHashCount: u64 = 250;
-	pub const MaximumBlockWeight: u32 = 1024;
+	pub const MaximumBlockWeight: Weight = 1024;
 	pub const MaximumBlockLength: u32 = 2 * 1024;
 	pub const AvailableBlockRatio: Perbill = Perbill::one();
 }
diff --git a/frame/system/benches/bench.rs b/frame/system/benches/bench.rs
index f42d5f6bd30356cf359abccb50b083a7a1f044a7..bdf3b83a38f82ebe32e87add01d1cb3cc8d3f041 100644
--- a/frame/system/benches/bench.rs
+++ b/frame/system/benches/bench.rs
@@ -16,7 +16,7 @@
 
 use criterion::{Criterion, criterion_group, criterion_main, black_box};
 use frame_system as system;
-use support::{decl_module, decl_event, impl_outer_origin, impl_outer_event};
+use support::{decl_module, decl_event, impl_outer_origin, impl_outer_event, weights::Weight};
 use primitives::H256;
 use sr_primitives::{Perbill, traits::{BlakeTwo256, IdentityLookup}, testing::Header};
 
@@ -52,7 +52,7 @@ impl_outer_event! {
 
 support::parameter_types! {
 	pub const BlockHashCount: u64 = 250;
-	pub const MaximumBlockWeight: u32 = 4 * 1024 * 1024;
+	pub const MaximumBlockWeight: Weight = 4 * 1024 * 1024;
 	pub const MaximumBlockLength: u32 = 4 * 1024 * 1024;
 	pub const AvailableBlockRatio: Perbill = Perbill::from_percent(75);
 }
diff --git a/frame/timestamp/src/lib.rs b/frame/timestamp/src/lib.rs
index 9585f350eb86fcbd40082f3ce78db92859cced45..73f9cd71b6b1d1123a3d7acb2877e303b6e24754 100644
--- a/frame/timestamp/src/lib.rs
+++ b/frame/timestamp/src/lib.rs
@@ -240,7 +240,7 @@ impl<T: Trait> Time for Module<T> {
 mod tests {
 	use super::*;
 
-	use support::{impl_outer_origin, assert_ok, parameter_types};
+	use support::{impl_outer_origin, assert_ok, parameter_types, weights::Weight};
 	use runtime_io::TestExternalities;
 	use primitives::H256;
 	use sr_primitives::{Perbill, traits::{BlakeTwo256, IdentityLookup}, testing::Header};
@@ -253,7 +253,7 @@ mod tests {
 	pub struct Test;
 	parameter_types! {
 		pub const BlockHashCount: u64 = 250;
-		pub const MaximumBlockWeight: u32 = 1024;
+		pub const MaximumBlockWeight: Weight = 1024;
 		pub const MaximumBlockLength: u32 = 2 * 1024;
 		pub const AvailableBlockRatio: Perbill = Perbill::one();
 	}
diff --git a/frame/transaction-payment/src/lib.rs b/frame/transaction-payment/src/lib.rs
index c7310ac587d5abb3f15367d81caaa39783eb4f0b..abb7518e35aa0c6bbc538b9bd79d88203ae44919 100644
--- a/frame/transaction-payment/src/lib.rs
+++ b/frame/transaction-payment/src/lib.rs
@@ -269,7 +269,7 @@ mod tests {
 
 	parameter_types! {
 		pub const BlockHashCount: u64 = 250;
-		pub const MaximumBlockWeight: u32 = 1024;
+		pub const MaximumBlockWeight: Weight = 1024;
 		pub const MaximumBlockLength: u32 = 2 * 1024;
 		pub const AvailableBlockRatio: Perbill = Perbill::one();
 	}
diff --git a/frame/treasury/src/lib.rs b/frame/treasury/src/lib.rs
index d71f8731c43dd771a811feb1ef38f65a6a778ce3..30ebc6f5a300529611c751391de962ed600454e6 100644
--- a/frame/treasury/src/lib.rs
+++ b/frame/treasury/src/lib.rs
@@ -351,7 +351,7 @@ impl<T: Trait> OnUnbalanced<NegativeImbalanceOf<T>> for Module<T> {
 mod tests {
 	use super::*;
 
-	use support::{assert_noop, assert_ok, impl_outer_origin, parameter_types};
+	use support::{assert_noop, assert_ok, impl_outer_origin, parameter_types, weights::Weight};
 	use primitives::H256;
 	use sr_primitives::{
 		traits::{BlakeTwo256, OnFinalize, IdentityLookup}, testing::Header, Perbill
@@ -365,7 +365,7 @@ mod tests {
 	pub struct Test;
 	parameter_types! {
 		pub const BlockHashCount: u64 = 250;
-		pub const MaximumBlockWeight: u32 = 1024;
+		pub const MaximumBlockWeight: Weight = 1024;
 		pub const MaximumBlockLength: u32 = 2 * 1024;
 		pub const AvailableBlockRatio: Perbill = Perbill::one();
 	}
diff --git a/frame/utility/src/lib.rs b/frame/utility/src/lib.rs
index ae5a4bd6cbc39f98474b7b2004afacbeee4f4b42..2fc5194f7d944317955f6dee5b41125f03e4c929 100644
--- a/frame/utility/src/lib.rs
+++ b/frame/utility/src/lib.rs
@@ -63,7 +63,10 @@ decl_module! {
 mod tests {
 	use super::*;
 
-	use support::{assert_ok, assert_noop, impl_outer_origin, parameter_types, impl_outer_dispatch};
+	use support::{
+		assert_ok, assert_noop, impl_outer_origin, parameter_types, impl_outer_dispatch,
+		weights::Weight
+	};
 	use primitives::H256;
 	use sr_primitives::{Perbill, traits::{BlakeTwo256, IdentityLookup}, testing::Header};
 
@@ -85,7 +88,7 @@ mod tests {
 	pub struct Test;
 	parameter_types! {
 		pub const BlockHashCount: u64 = 250;
-		pub const MaximumBlockWeight: u32 = 1024;
+		pub const MaximumBlockWeight: Weight = 1024;
 		pub const MaximumBlockLength: u32 = 2 * 1024;
 		pub const AvailableBlockRatio: Perbill = Perbill::one();
 	}
diff --git a/test/utils/runtime/src/lib.rs b/test/utils/runtime/src/lib.rs
index 7dd98c56c0cf905de94103107c301c3886ab0e96..7761cfb9444ecb96e3423aae853cfef359db501b 100644
--- a/test/utils/runtime/src/lib.rs
+++ b/test/utils/runtime/src/lib.rs
@@ -47,7 +47,7 @@ use runtime_version::RuntimeVersion;
 pub use primitives::{hash::H256};
 #[cfg(any(feature = "std", test))]
 use runtime_version::NativeVersion;
-use runtime_support::{impl_outer_origin, parameter_types};
+use runtime_support::{impl_outer_origin, parameter_types, weights::Weight};
 use inherents::{CheckInherentsResult, InherentData};
 use cfg_if::cfg_if;
 
@@ -353,7 +353,7 @@ impl From<frame_system::Event> for Event {
 parameter_types! {
 	pub const BlockHashCount: BlockNumber = 250;
 	pub const MinimumPeriod: u64 = 5;
-	pub const MaximumBlockWeight: u32 = 4 * 1024 * 1024;
+	pub const MaximumBlockWeight: Weight = 4 * 1024 * 1024;
 	pub const MaximumBlockLength: u32 = 4 * 1024 * 1024;
 	pub const AvailableBlockRatio: Perbill = Perbill::from_percent(75);
 }