pragma solidity 0.4.20; contract Initializable { bool public initialized = false; modifier afterInitialized { require(initialized); _; } modifier beforeInitialized { require(!initialized); _; } function endInitialization() internal beforeInitialized returns (bool) { initialized = true; return true; } }