contract Dynasty is DetailedERC20, CappedToken, PausableToken, BurnableToken {

    uint256 public constant INITIAL_SUPPLY = 0;

    constructor()
        DetailedERC20("Dynasty Global Investments AG", "DYN", 18)
        CappedToken(21000000000000000000000000)
    public {
        totalSupply_ = INITIAL_SUPPLY;
        balances[msg.sender] = INITIAL_SUPPLY;
        emit Transfer(0x0, msg.sender, INITIAL_SUPPLY);
    }

    event MintTimelocked(address indexed to, uint256 amount);

    /**
     * @dev mint timelocked tokens
     */
    function mintTimelocked(address _to, uint256 _amount, uint64 _releaseTime) public onlyOwner canMint returns (TokenTimelock) {

        TokenTimelock timelock = new TokenTimelock(this, _to, _releaseTime);
        mint(timelock, _amount);
        emit MintTimelocked(timelock, _amount);

        return timelock;
    }
}
function mintTimelocked(address _to, uint256 _amount, uint64 _releaseTime) public onlyOwner canMint returns (TokenTimelock) {

    TokenTimelock timelock = new TokenTimelock(this, _to, _releaseTime);
    mint(timelock, _amount);
    emit MintTimelocked(timelock, _amount);

    return timelock;
}

/**
 * @dev mint timelocked tokens
 */