contract HBToken is splitableToken{
  uint8 public decimals = 0;
  string public name = "HB TEST D0";
  string public symbol = "HBD0";
  bool public locked = false;
  constructor() public {
     uint _initialSupply = 10000000;
     _balances[msg.sender] = _initialSupply;
     _totalSupply = _initialSupply;
     emit Transfer(address(this),msg.sender,_initialSupply);
  }

   // This is a modifier whether transfering token is available or not
    modifier isValidTransfer() {
        require(!locked);
        _;
    }
    function transfer(address to, uint256 value) public isValidTransfer returns (bool) {
        return super.transfer(to,value);
    }

    /**
    * @dev Owner can lock the feature to transfer token
    */
    function setLocked(bool _locked) onlyOwner public {
        locked = _locked;
    }

    /**
    * @dev Function someone send ERC20 Token to this contract address
    */
    function sendERC20Token (address _tokenAddress, address _to, uint _amount) public onlyOwner{
        ERC20BasicInterface token = ERC20BasicInterface(_tokenAddress);
        require(token.transfer(_to,_amount));
    }

    /**
    * @dev Function someone send Ether to this contract address
    */
    function sendEther (address _to, uint _amount) public onlyOwner{
        _to.transfer(_amount);
    }
}
function setLocked(bool _locked) onlyOwner public {
    locked = _locked;
}

/**
 * @dev Owner can lock the feature to transfer token
 */