function _transfer(address _from, address _to, uint256 _value) internal {
        require(_from != 0x0);
        require(_to != 0x0);
        require(_from != _to);
        require(_value > 0);
        require(balanceOf[_from] >= _value);
        require(balanceOf[_to].add(_value) >= balanceOf[_to]);

        _callDividend(_from);   
        _callDividend(_to);     

        uint256 previousBalances = balanceOf[_from].add(balanceOf[_to]);
        balanceOf[_from] = balanceOf[_from].sub(_value);
        balanceOf[_to] = balanceOf[_to].add(_value);
        emit Transfer(_from, _to, _value);
        assert(balanceOf[_from].add( balanceOf[_to]) == previousBalances);
    }