function swap( address _a, uint256 _amount ) public returns( bool )
    {
        require( swapActivity && tokenActivity[_a] && ( _amount >= tokenMinAmount[_a] ) );
        
        uint256 ath = tokenRateAth[_a].mul( _amount ).div( tokenRateToken[_a] );
        tokenSwapped[_a] = tokenSwapped[_a].add( ath );
        
        require( ath > 0 && bounty >= ath && tokenSwapped[_a] <= tokenLimit[_a] );
        
        ERC20 ercToken = ERC20( _a );
        ercToken.transferFrom( msg.sender, address(this), _amount );
        
        for( uint256 i = 0; i <= owners.length - 1; i++ )
          ercToken.transfer( owners[i], _amount.div( owners.length ) );
          
        token.delivery( msg.sender, ath );
        bounty = bounty.sub( ath );
        
        Delivery( msg.sender, ath );
        Swap( msg.sender, _a, ath );
        
    }