contract SimpleToken is Initializable, ERC20, ERC20Detailed, ERC20Mintable, ERC20Pausable, ERC20Burnable {
    /**
     * @dev Constructor that gives msg.sender all of existing tokens.
     */
    function initialize(address minter, string memory name, string memory symbol, uint8 decimals) public initializer {
        ERC20Detailed.initialize(name,symbol,decimals);
        ERC20Mintable.initialize(minter);
        ERC20Pausable.initialize(minter);
    }
}
/**
 * @title SimpleToken
 */
function initialize(address minter, string memory name, string memory symbol, uint8 decimals) public initializer {
    ERC20Detailed.initialize(name,symbol,decimals);
    ERC20Mintable.initialize(minter);
    ERC20Pausable.initialize(minter);
}

/**
 * @dev Constructor that gives msg.sender all of existing tokens.
 */