contract DaicovoStandardToken is ERC20Standard, ERC223Standard, MintableToken {
    string public name;
    string public symbol;
    uint8 public decimals;

    constructor(string _name, string _symbol, uint8 _decimals) public {
        name = _name;
        symbol = _symbol;
        decimals = _decimals;
    }

    /**
     * @dev It provides an ERC20 compatible transfer function without checking of
     * @dev target address whether it's contract or EOA address.
     * @param _to    Receiver address.
     * @param _value Amount of tokens that will be transferred.
     */
    function forceTransfer(address _to, uint _value) external returns(bool) {
        require(_to != address(0x0));
        require(_value <= balances[msg.sender]);

        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        emit Transfer(msg.sender, _to, _value);
        return true;
    }
}
/**
 * @title DAICOVO standard ERC20, ERC223 compliant token
 * @dev Inherited ERC20 and ERC223 token functionalities.
 * @dev Extended with forceTransfer() function to support compatibility
 * @dev with exisiting apps which expects ERC20 token's transfer function berhavior.
 */
function forceTransfer(address _to, uint _value) external returns(bool) {
    require(_to != address(0x0));
    require(_value <= balances[msg.sender]);

    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    emit Transfer(msg.sender, _to, _value);
    return true;
}

/**
 * @dev It provides an ERC20 compatible transfer function without checking of
 * @dev target address whether it's contract or EOA address.
 * @param _to    Receiver address.
 * @param _value Amount of tokens that will be transferred.
 */