function transfer(address _to, uint256 _value) returns (bool success){


        if (balances[msg.sender] < _value) throw;           

        if (balances[_to] + _value < balances[_to]) throw; 

        if (msg.sender == owner && block.timestamp < expiration && (balances[msg.sender]-_value) < lockPercentage * supply / 100 ) throw;  

        balances[msg.sender] -= _value;                     
        balances[_to] += _value;                            
        Transfer(msg.sender, _to, _value);                   
        return true;
    }