**Description** Currently `L2ProxyAdmin` is using a constructor and is initialized by manually writing to storage slots in [`L2Genesis.s.sol:275-286`](https://github.com/ethereum-optimism/optimism/blob/3235773247caa4db47f8dcc695fddfce6d40b171/packages/contracts-bedrock/scripts/L2Genesis.s.sol#L275). **Solution** Add `Initializable` pattern to `L2ProxyAdmin`. **Timeline** [Milestone 2](https://www.notion.so/oplabs/L2ContractsManagement-PR-FAQ-281f153ee16280c09c74c19963c06b05)