public void start(BundleContext context) throws Exception {
		m_context = context;

		// We synchronize while registering the service listener and
		// performing our initial dictionary service lookup since we
		// don't want to receive service events when looking up the
		// dictionary service, if one exists.
		synchronized (this) {
			// Listen for events pertaining to dictionary services.
			m_context.addServiceListener(this, "(&(objectClass=" + DictionaryService.class.getName() + ")" + "(Language=*))");

			// Query for any service references matching any language.
			ServiceReference[] refs = m_context.getServiceReferences(DictionaryService.class.getName(), "(Language=*)");

			// If we found any dictionary services, then just get
			// a reference to the first one so we can use it.
			if (refs != null) {
				m_ref = refs[0];
				m_dictionary = (DictionaryService) m_context.getService(m_ref);
			}
		}

		try {
			System.out.println("Enter a blank line to exit.");
			String word = "";
			BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

			// Loop endlessly.
			while (true) {
				// Ask the user to enter a word.
				System.out.print("Enter word: ");
				word = in.readLine();

				// If the user entered a blank line, then
				// exit the loop.
				if (word.length() == 0) {
					break;
				}
				// If there is no dictionary, then say so.
				else if (m_dictionary == null) {
					System.out.println("No dictionary available.");
				}
				// Otherwise print whether the word is correct or not.
				else if (m_dictionary.checkWord(word)) {
					System.out.println("Correct.");
				} else {
					System.out.println("Incorrect.");
				}
			}
		} catch (Exception ex) {
		}
	}