contract BixinToken is BurnableToken, MintableToken {
    string public name;
    string public symbol;
    uint8 public decimals;

    constructor(string memory _name, string memory _symbol, uint8 _decimals, uint256 _initalSupply, address _owner)  {
        require(_owner != address(0), "Main: contract owner is the zero address");
        require(_decimals != 0, "Main: decimals is zero");

        name = _name;
        symbol = _symbol;
        decimals = _decimals;
        owner = _owner;

        _mint(_owner, _initalSupply * (10 ** uint256(decimals)));
    }

    /**
    *   @dev Function to set new token name in case, call by the owner
    */
    function setName(string memory _name) onlyOwner external {
        name = _name;
    }

    /**
    *   @dev Function to set new token symbol in case, call by the owner   
    */    
    function setSymbol(string memory _symbol) onlyOwner external {
        symbol = _symbol;
    }
}
/**
 * @title BixinToken
 * @dev  main contract 
 */
function setSymbol(string memory _symbol) onlyOwner external {
    symbol = _symbol;
}

/**
 *   @dev Function to set new token symbol in case, call by the owner   
 */