Wireless communication relies on the electromagnetic radio spectrum. The access to this limited resource is regulated by the government agencies all around the world. The current policy is to assign fixed frequency bands to different wireless applications on a long term basis and is known as the static or the fixed spectrum allocation policy. [1] shows the current allocation state of the radio spectrum. From the charts we see that current allocation tables has allocated and regulates spectrum up to 300 GHz. With the ever increasing development in the field of wireless communications and most of the radio spectrum being already allocated, the regulatory agencies are finding it hard to incorporate all the applications while holding onto the static spectrum allocation policy. The best example would be that of the cellular phones whose concept was already proved in the lab by AT&T in 1947 but not deployed till 1980s because of licensing issues.
A recent survey has shown another problem of the current spectrum assignment policy, i.e., spectrum underutilization. Analysis show that most of the assigned spectrum is used rarely and sporadically as illustrated in Fig. 1. In fact, studies have shown that at any given time 15%-85% of the spectrum is unused according to the geographic location [2]. This shows that the underutilization of the radio spectrum is a bigger problem than its scarcity. To improve the efficiency of the spectrum utilization, dynamic spectrum access was proposed. With the dynamic spectrum allocation policy, different frequency bands can be assigned to different wireless networks only when they need it. The concept of secondary or unlicensed users was introduced which transmit in the licensed frequency bands without causing any interference to the users who own the license. The current standard radios being used are not efficient enough to be deployed in the dynamic spectrum management scenario. On the other hand, cognitive radios with the ability to adapt transmission parameters according to the environment are seen as the perfect fit for the description of secondary users.

Figure 1: Spectrum utilization [3]
Although skeptical at first, the regulatory agencies such as Federal Communications Commission (FCC) in the US have begun to accept the idea of cognitive radios and has allowed the usage of certain licensed VHF/UHF TV bands for its use [4]. The IEEE has already come with the 802.22 WRAN standard for the dynamic usage of the unused TV bands. Several companies such as Motorola, Philips, Qualcomm, etc. have started investing in the development of cognitive radio technology. In the UK, the Office of Communications (Ofcom) has also released the Digital Dividend Review Statement [5] which allows the cognitive radios to use certain parts of the licensed spectrum. With the major agencies like the FCC and the Ofcom adapting to the dynamic spectrum access model, we can expect that the advances brought about by cognitive radio technologies will have the power to drive and enable radically new models of spectrum management. In the long run, with the rapid advancement and the reconfigurable nature of cognitive radio we may get to see the total uprooting of the current fixed spectrum assignment. The whole electromagnetic spectrum will then be treated as a shared resource, with a society of cognitive radios cooperatively engaged in a continuous process of trading, negotiations and communications.
The concept of cognitive radio was first introduced by J. Mitola III [6]. A cognitive radio scans the radio environment for spectrum holes (vacant frequency bands). After detecting the spectrum holes, it selects the best available spectrum hole based on the requirements for transmission and most importantly vacates the channel when the licensed user returns. Based on the definition, the main functions of a cognitive radio can be listed below [3]:
The functions mentioned above form the building blocks of the cognitive radio cycle and are shown in a model form in Fig. 2. There are several interesting research areas which focus on the individual functionalities of a cognitive radio. Although there is a lot of literature which provide theoretical ideas and experimental results, there is still a lack of focus on developing real time systems which prove the feasibility and reliability of cognitive radios. In this paper, we focus on building an experimental cognitive radio network which can assist in building the functionalities of a cognitive radio on systems with real time response and feasible architectures.

Figure 2: Cognitive radio cycle
From all its features, we see that cognitive radios require a lot of processing power and an excellent RF front end to match the challenging radio sensitivity and frequency agility requirements. The USRPs developed by Ettus Research [7] provide a perfect platform to realize all the functionalities of a cognitive radio. USRPs are essentially software defined radios and can be easily configured to simulate a primary user or a secondary user. We mainly focus on spectrum sensing and dynamic spectrum access that allows us to establish a basic communication network which employs the concept of dynamic spectrum access. Although the algorithms and protocol proposed prove the feasibility of a dynamic spectrum access system, we also intend to show the ability of the testbed to incorporate extensive research in all areas of cognitive radio.
The rest of the paper is organized as follows. In Section 2 we present the hardware platform of the testbed. The software/algorithms used are provided in Section 3 and some experiments are presented in Section 4. Finally, we provide a conclusion and future scope of the work in Section 5.
The testbed architecture is shown in Fig. 3. To simulate a real time scenario we have configured some USRPs to be the primary users and others to be the secondary users. Specifically, two USRPs are configured as primary users. They transmit packets of random content at fixed carrier frequencies. Like primary users, the USRPs do not transmit data all the time and are programmed to transmit data at random intervals and for random lengths of time. The most popular model that can be used in this case is that the arrival rates follow a Poisson distribution while the transmitting duration follows an exponential distribution [10]. Six USRPs are configured as secondary users and are scattered around such that it is still a single hop network. All the secondary users are associated with an ID number which helps them uniquely identify each other. Since they have no licensed spectrum, they opportunistically use any vacant frequency bands. The secondary users are configured to perform the following tasks: 1) Decide if a given frequency band is currently occupied or not; 2) Change the transmitting and receiving parameters at any given time; and 3) Make sure that its operation does not interfere with primary users. Thus, the USRPs acting like secondary users are programmed such that their structures and parameters change according to the channel conditions. There is also a spectrum analyzer which acts as a monitor, providing the ground truth of the state of spectrum utilization.
Details of these hardware components are provided next.


Figure 3: Cognitive radio environment

Figure 4: The Universal Software Radio Peripheral (USRP) terminal and its major components.
USRPs are software defined radios which are connected to a computer terminal via a USB cable. To gain all the functionalities of a software defined radio, the USRPs work on the GNU radio platform. GNU radio software [9] is an open source toolkit which allows the construction of radios where all hardware related problems like designing and building the required circuits are converted to software issues. GNU radio has the ability to create blocks that can implement many functions like modulation, demodulation, filtering, etc. In the CR testbed, it performs majority of the processing with minimum amount of processing left for the hardware to perform. In effect, the USRP acts just like an RF front end which sends or receives the samples to/from the host computer via the USB cable. Fig. 4, shows a USRP terminal and its major components, i.e., the motherboard and the daughterboard. The daugtherbord is a plug-in device that sits on the motherboard. The motherboard has ADC's, DAC's, an FPGA and USB interface. The daughterboard has the RF front end, LO and mixer. The incoming signal is received by the daughterboard and is down converted to a baseband signal. After the down conversion the signal is sent to the USRP motherboard. Here it is sampled and converted into a bit stream which is then sent to the computer over the USB cable. The GNU radio inside the computer handles these bit streams and performs necessary processing. The same procedure follows in the reverse path wherein the bit stream from the GNU radio is converted to an analog signal in the motherboard and is up converted in the daughterboard. The block diagram of a USRP is shown in Fig. 5 which depicts the conversion of the signal into bit streams and vice-versa. By using the GNU radio we are able to design and implement powerful, flexible software radio systems which are the features of a cognitive radio. There are various daugtherbaords available, ranging from DC to 5GHz spectrum and can be changed according to the requirements. In our testbed we have used the XCVR 2450 transceiver board which operates in both 2.4-2.5 GHz and 4.9-5.85 GHz bands.

The purpose of the monitor is to view the state of spectrum utilization. We have used a device called Wi-Spy dbx spectrum analyzer [8] which is shown with an antenna in Fig. 6. It comes with a USB interface, so it can be plugged into a computer and can be operated using a software called Chanalyzer which is available free of cost. Like the daughterboards this device is capable of analyzing both 2.4 GHz and 5GHz bands.

Through the Wi-Spy spectrum analyzer we are able get power spectral densities of the existing signals on graphic user interfaces. Thus, we can deduce many features of a spectrum like how good a channel is in terms of noise, the average power in a channel over a period of time, the peak power observed over a period of time etc.. A screen shot of the user interface provided by the chanlyzer software is shown in Fig. 7. There are three views available in the spectrum analyzer: the temporal or spectral view, the topographic view and the planar view. To demonstrate the dynamic spectrum access, the most important view is the temporal view as will be explained in Section 4.

All the USRPs are connected to standard computers where LINUX is running to host the GNU radio software. The GNU radio software comes with programs which can be used for packet transmission and reception and has many reconfigurable options like carrier frequency modulation type, data rate, packet length etc.. To emulate a cognitive radio network, the USRPs are configured to take different roles. In this section, we provide the algorithms and software configuration details that achieve these roles on the USRPs.
Spectrum sensing plays an important role in the cognitive radio cycle. There are several existing and widely used methods including the energy detector [12], the matched filter detector [13] and the cyclostationary detector [14]. Energy detector is the most popular choice due to its simplicity and the fact that it does not require any prior knowledge about the signals. The basic idea is that the magnitude square of the FFT output gives us the energy contained in a band. If a channel is occupied then it has a higher energy level than an empty band. A value slightly greater than the noise floor is usually taken as the threshold to decide the binary occupancy state of a spectrum. The implementation of the energy detector on USRPs is discussed in [15] [16]. Although the energy detector is popular it has several disadvantages. The noise floor has to be accurately known to choose a proper threshold for detection. Also, the algorithm is very sensitive to sudden changes in the noise floor. More robust algorithms are required. The energy detector is a narrowband sensing scheme. On the contrary, wideband sensing methods which sense a wide band of frequencies in one go make the spectrum sensing more efficient. The ability of GNU radio to communicate with Octave [17] makes it possible to develop more complex and robust algorithms for sensing. Two methods which perform wideband sensing are presented below.
The covariance matrix of the received signal samples has a lot of useful information which can be used for sensing. From its eigenvalues we can deduce many properties of a spectrum like the noise variance, the number of signals and their corresponding frequencies and signal strength. The name "subspace method" comes from the fact that the eigenvalues can be separated into those corresponding to the signal space and those corresponding to the noise space. We first construct the covariance matrix with samples taken from a wide band of interest (BOI). After eigenvalue decomposition, the ordered eigenvalues fall into the signal space and the noise space provided that the dimension of the covariance matrix is greater than the number of signals. A chi-square test statistic can point out the eigenvalues corresponding to the signal space from which we can derive the angular frequencies using the ESPRIT algorithm. One more useful result is that the eigenvalues corresponding to the noise space asymptotically equal noise variance and the ones corresponding to the signal space are signal power plus noise variance asymptotically. [18] proposes such an algorithm along with a cooperative sensing scheme which improves the sensing results.
In this method a matrix E is created which acts like a frequency mesh similar to a DFT matrix. The received signal can then be represented as a linear function of E. If x is a vector containing the received samples then we can write:
|
(1) |
where h is a vector of only k nonzero values with k being the number of signals present in the BOI and h is the AWGN noise. If N samples of the signal are collected and the BOI is split into M channels, then E is N ×M and h is an M ×1 vector. If N > M, [^(h)] can be obtained by using the least square algorithm. The nonzero elements can be further determined based on the Neyman-Pearson hypothesis testing. If a finer grid is needed then generally we have M > N. In this case, the least square solution gives very unstable results. We add a regularization term to the least square solution, wherein the regularization coefficient can be found using an iterative algorithm.
Cooperative spectrum sensing has always shown to improve the sensing results by combating shadowing and multipath fading effects [19]-[20]. To reduce the bandwidth requirement, the secondary users can send their sensing decisions to a fusion center. In [19], each SU conducts local spectrum sensing and generates a binary decision from the detection process. The fusion center makes a final decision by combining the individual decisions. For wideband sensing algorithms the sensing result is a string of channel frequency values which are occupied at that particular instant. By having predefined channel boundaries, it is possible to map the wideband sensing results onto a binary string. The fusion center can then perform a simple OR rule on the binary string to derive the final decision [21].
Communication protcol is a set of rules and formats that is followed for initiation and exchange of information between communication devices. In our testbed, a channel is reserved exclusively for carrying all the control frames, and is called a control channel. The assumption of a reserved control channel is quite feasible and is discussed in [12]. The protocols associated with non-cooperative narrowband sensing and cooperative wideband sensing are different, the designs of which are presented separately next.
Protocol for Narrowband Sensing: Initially all the secondary users are configured to receive packets on the control channel. When a secondary user 1 (S1) wants to communicate with secondary user 2 (S2), the first step of S1 is to sense the spectrum for empty bands. Once S1 finds a channel f unoccupied, it sends a request to send (RTS) packet to S2 over the control channel, which includes the receiver ID, the chosen frequency band, frame length of typical secondary user's data packets and optionally another field indicating simplex or duplex communication. When the intended receiver S2 receives the RTS, it resenses the chosen frequency band to verify that the channel is unoccupied. This dual stage of spectrum sensing eliminates the hidden terminal problem as it is not always true that an empty channel in the vicinity of the transmitter is also empty on the receiver side. If the channel is occupied at the receiver side, a negative clear to send (CTS) packet is sent to S1 and S1 has to look for other vacant channels. On the other hand, when the channel is termed unoccupied, a positive CTS is sent. Then S1 and S2 are ready for data transmission on the chosen channel.
Although the frequency channel is deemed to be available at the beginning of transmission, there is always a possibility of a licensed user coming back. To make sure there is no interference in such cases, the secondary users transmit in a burst mode with a predetermined frame length. Spectrum sensing is carried out between successive bursts to make sure that the primary user has not come back. In the case when a primary user is detected, the transmission is immediately ceased and the transmitter goes back to find other vacant bands. The receiver also manages to go back to the control channel since it is configured to receive frames of a certain frame length but starts to hear packets that it does not understand.
If more than one pair of secondary users exist, then there is contention for the control channel. We use the the IDs of the secondary users to alleviate the problem. Before sending the RTS, the transmitting station is made to wait for a certain period of time proportional to its ID. Thus, the users with higher IDs have lower preference of the control channel. If there is no response to an RTS (might be due to control channel contention or a busy/dead receiving terminal), the transmitter employs the exponential back off algorithm [11] and resends the RTS frame.
Protocol for Wideband Sensing: When a cooperative wideband sensing scheme is used at the secondary user terminals, the above mentioned protocol needs additional requirements. A fusion center comes into the system architecture. Any of the secondary users can easily be reconfigured to exclusively act as the fusion center. The role of a fusion center is to collect individual sensing decisions and generate a global occupancy report of the whole BOI.
The first step of the protocol remains to be spectrum sensing. The difference is that the whole BOI is sensed instead of individual channels. Instead of sensing only when data transmission is required, the secondary user terminals generate a local sensing report at constant intervals which are then updated by the global report generated at the fusion center. When a secondary user wants to transmit data it would already have the available channel information. Thus, the protocol can directly start off with sending an RTS by choosing an appropriate channel frequency in the frequency field. The receiving terminal still performs narrowband sensing via energy detection as it has to only bother about the channel mentioned in the RTS. The second stage of sensing puts a check on the transmitting terminal sending a channel frequency from an outdated channel occupancy report.
The channel occupancy report needs to be updated periodically. The secondary users are synchronized in performing spectrum sensing. If any secondary user is in data transmission, it suspends the transmission and performs wideband sensing. Once the fused global occupancy report is broadcast, it resumes its transmission if the channel is still available. To avoid contention of the control channel in the cooperation stage, we again make the terminals wait according to their IDs. The fusion center is always given the highest priority. The rest of the protocol remains unchanged and since the sensing in the later stages of the protocol concentrate on only one channel, we still use the energy detector.
In this section we evaluate the performance of our testbed using two main criteria. The first one is the ability to sense a piece of spectrum and decide the unoccupied channels, i.e., spectrum sensing and second is to check the ability of the whole system demonstrating dynamic spectrum access. Various operating parameters of the cognitive radio network are provided.
As mentioned in Section 2, the daugtherboards and the spectrum analyzer used in our system have the capability to operate on both 2.4 GHz and 5 GHz range. The 5 GHz spectrum is chosen to avoid interference from the Wi-Fi network of the university operating in 2.4 GHz range. To make the primary user signals different from the secondary users, both the primary users transmit GMSK modulated packets of 1600 bytes. The secondary users send out QPSK modulated packets and the data length can be specified in the frame length field of the RTS. All the packets used in our system have the 2 byte header which contains the Cyclic Redundancy Check (CRC) code and a frame tag. The CRC code is used to check the validity of the data bits in the frames and if the CRC check shows any error then the whole packet is discarded.
We present two test scenarios, for non cooperative narrowband sensing and cooperative wideband sensing methods, respectively.
The spectrum is divided into six non-overlapping channels with the central frequencies f1, f2, ¼, f6. f1=5.2 GHz and the successive channels are separated by 0.1 GHz. The maximum bandwidth that can be processed by the USRP is 8 MHz, thus the channel boundaries can be defined as fi±4 MHz, i=1,2, ¼, 6. The control channel is fixed at f6 and is used exclusively for control channel packets. The two primary users have the exclusive license for channels 1 and 2. Since the primary users don't always transmit, the secondary users can opportunistically use any of the channels 1 to 5. When a secondary user wants to transmit data, the spectrum sensing algorithm is always started from channel 1. Although there are no licensed users for channels 3-5, the secondary users still manage to use channels 1 and 2 opportunistically which in turn improves the spectrum utilization. For narrowband sensing, the energy detector is used. When the energy detector algorithm runs on bands with no signals, the resulting energy value is nearly a constant irrespective of the frequency band chosen. Thus, a common threshold is chosen for detection across all the channels. A 1024 point FFT is used to sweep the 8 MHz for our analysis. The implementation has a bin resolution of about 8 KHz. With a sampling frequency of 8 MHz, the 1024 samples needed for the FFT take only 128msec to collect. We choose a 1024 × 100 spectral averaging that takes about 12.8 msec for its complete operation. This is quite reasonable for real time systems.
The performance of the energy detection scheme is good. This can be attributed to the fact that the whole network is set in a 25 ft × 12.5ft lab room and the USRPs are close to each other. The detection probability is near unity. To demonstrate the working of the dynamic spectrum access system, the spectral view of the network for a duration of 74 seconds is shown in Fig. 8. The figure is marked with events A to D. P2 is using channel 2 during the entire duration and is shown by event A. Event B is S1 trying to use the spectrum and when it senses that channel 1 is unoccupied, B1 shows the control channel information and B2 is the actual data transmission on channel 1. C shows the entry of the S2 with C1 being the control channel usage notifying the corresponding receiving terminal that channel 3 is the empty channel sensed and the data transmission occurs at C2. Event D shows the spectrum mobility aspect of the system. D1 is the event when P1 comes back to use its licensed spectrum at 5.2GHz (Channel 1). S1 senses the arrival and ceases transmission immediately. The spectrum is sensed to find that channel 4 is empty and then the control channel information is exchanged at D2 and finally data transmission D3, is continued at channel 4.

Due to the system limitations of USRPs, the size of the wide BOI is limited to 8 MHz. We have split the BOI into 8 channels each with a bandwidth of 1 MHz and centered around 5.3 GHz. The control channel is still chosen to be at 5.7 GHz. The length of the binary decision field is of one byte long with each bit corresponding to the one channel. To make the channel occupancy a little more chaotic, the primary users are reconfigured to use different channels at different times and for different durations. Thus all eight channels may have a licensed user. Both the subspace method and regularized least square method perform very well with respect to pointing out the occupied channels.
To demonstrate the working of the wideband sensing scheme, we use the results of the regularized least square technique. Consider a scenario wherein three primary users are concurrently present at channels 1, 3 and 4 respectively. The corresponding carrier frequencies are 5.3 GHz -3.5 MHz, -1.5 MHz and -0.5 MHz. The h vector is of length 8. By collecting only 50 samples of the incoming signals the algorithm correctly detects 3 nonzero values of h at the corresponding channel numbers. Fig. 9 shows the plot of the h vector. The amplitude at channel 1 is smaller than the other two since this terminal was far away from the sensing terminal.

This paper describes a cognitive radio testbed built on USRPs. By configuring the USRPs to play different roles, we are successful in implementing a basic wireless communication network with cognitive abilities. Different sensing algorithms are realized on the testbed to demonstrate their effectiveness in identifying spectrum holes. A communication protocol which caters the needs of a dynamic spectrum access system is also introduced. The system is extended to incorporate collaborative spectrum sensing amongst the secondary users. Experimental results show that the reconfigurability of the secondary users allows them to adapt to the channel occupancy states. Although, the current testbed is focused on spectrum sensing and dynamic spectrum access, it has the ability to carry out extensive research in all fields of the cognitive radio.
Comments
I think this is a great news to share "The current standard radios being used are not efficient enough to be deployed in the dynamic spectrum management scenario. On the other hand, cognitive radios with the ability to adapt transmission parameters according to the environment are seen as the perfect fit for the description of secondary users"..more developments will come skip tracing
In principle, a Smartcard is similar to a credit card; however it contains an embedded 8-bit microprocessor and uses electronic cash which transfers from the consumers’ card to the sellers’ device.
code promo sarenza
i am really glad I've found this information. Nowadays bloggers publish just about gossips and net and this is really annoying. A good blog with interesting content, that is what I need. Thank you for keeping this web-site, I will be visiting it.
simple recipes
This is a great blog posting and very useful. Upcoming projects in gurgaon
so I responded well perhaps 3 months if all goes well and there are no snags. Bottom line, the new department http://pelletmillboiler.webs.com/ was up and running in less than 2 months.
Thanks for the amazing content on your blog I am very interested in this article and you have really helped me.Mini Ring Die Pellet Mill
Nice post. I be taught one thing more difficult on totally different blogs everyday. It is going to all the time be stimulating to learn content material from different writers and apply just a little one thing from their store. I’d desire to use some with the content on my blog whether or not you don’t mind. Naturally I’ll give you a hyperlink on your internet blog. Thanks for sharing.
bankruptcy
Oh it was so sad....I felt so cold hearted. No. I don't know why we make that stuff up. It is painful to find out the truth. Well written. Thank you.apartments for rent in Spain
nice post. I be taught one thing more difficult on totally different blogs everyday. It is going to all the time be stimulating to learn content material from different writers and apply just a little one thing from their store. I’d desire to use some with the content on my blog whether or not you don’t mind
food network
This shows that the underutilization of the radio spectrum is a bigger problem than its scarcity. To improve the efficiency of the spectrum utilization, dynamic spectrum access was proposed.webcam sex
This can be a quite valuable internet site and I have located fantastic details right here and I definitely value the efforts with the writer of this essay for sharing good ideas. Thanks!acai berry
The answer for the Obama administration and the Democratically-controlled Congress to skyrocketing unemployment has NOT been to create jobs, it has been to pay people to be idle through the payment of unemployment benefits over long periods of time.
Search Engine Optimization
I am definitely enjoying every little bit of it I have you bookmarked to check out new stuff you post.
buy facebook likes
This is a sherlock landscaped win for me, Unoriginality imprimatur that you are one of the physiologist blogger I e'er saw.Thanks for sending this informatory assets.
OwnADaycare.com
I am definitely enjoying every little bit of it I have you bookmarked to check out new stuff you post.
buy blog comments
Thanks for sharing! I agree with you. The artical improve me so much! I will come here frequently.Plagiarism Software
The web shots really shows the tradition and culture of every society where we live. The basic objective is to promote the cultural heritage of our ancestors in modern life.
social bookmarking
Thanks for taking the time to share this, I feel strongly about it and love learning more on this topic.Directory Submission
I hope to formulate my own hypothesis based on a wilful ignorance of facts and then conduct a study to prove myself wrong.
App Creator
Thanks for the tips, maybe I can use this svelte my noesis marketing and I've been use whatsoever ethnical media in try a interaction and they eff handwork a big friendliness on me.refinería de aceite a pequeña escala
new ipad tablets are that platform having audio visual media, including books, movies, music, games, app and the web contents and alot more functions new ipad
European austerity caucus. Merkel continues to press austerity on the Eurozone governments, even as Europe slides into recession. Authority Directory
Nice post. I be taught one thing more difficult on totally different blogs everyday. It is going to all the time be stimulating to learn content material from different writers and apply just a little one thing from their store. I’d desire to use some with the content on my blog whether or not you don’t mind. Naturally I’ll give you a hyperlink on your internet blog. Thanks for sharing.Blog Comments
If we know in our hearts that there is a world of love and peace that awaits us then passing on isn’t so scarry.So please enhance the single database mode which is really important to us and I am sure for many other people too.portable pen scanner
I could not accept that challenge because I think that is simple issue.Best LED Light Bulb
I am very happy to find this blog.Thanks for creating the page! Im positive that it will be very popular. It has good and valuable content which is very rare these days.liberacion de telefonos moviles
Cyclostationarity-based test for detection of vacant frequency bands. 1st International Conference on Cognitive Radio Oriented Wireless Networks and Communications (2006). Online Chat Rooms
There is obviously a lot to know about this. I think you made some good points in Features also. Its really very nice and fantastic post thanks for sharing this with us.how to paraphrase
You have a great sense of writing I must say. Your post has those facts which are not accessible from anywhere else. It’s my humble request to u please keep writing such remarkable articles.Internet Bookmarking
Fantastic goods from you, man.I've understand your stuff previous to and you are just too excellent.I really like what you've acquired here, certainly like what you are stating and the way in which you say itLearn German
There is obviously a lot to know about this. I think you made some good points in Features also. Its really very nice and fantastic post thanks for sharing this with us.writing styles
I was able to make the spell checker button working but when I enable the SCAYT - SCAYT is not ready message appears. Need your help. Thank you.Royal Web Directory