# New `contruct_rutnime` idea
```
#[frame::contruct_rutnime]
mod runtime {
// The rest, like `AllPalletsReserved` and such have to be
// unfortunately aut-generated, or better, deprecated.
#[frame::pallets]
type AllPallets = (
frame_system::pallet,
pallet_balances::pallet,
pallet_staking::pallet,
pallet_sessin::pallet,
);
// don't think there is much to this.
#[frame::runtime]
pub struct Runtime;
// Auto-generate call from `AllPallets`
#[frame::call]
pub enum RuntimeCall = ..AllPallets;
// Alternative to the speard syntax above: Explicitely build an enum with the given
// pallet paths.
//
// This is very dangerous, only for experts. Probably no real use case for it either..
#[frame::event]
pub enum RuntimeEvent = (frame_system, pallet_staking);
#[frame::origin]
pub enum Origin = ..AllPallets
}
pub use runtime::{Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin};
```