Sointu- ja intervalliutelija Soinnuuttelija koostuu neljästä luokasta. Suurin niistä on luokka Sointu, jonka sisään on piilotettu soinnun (ja myös intervallin) tietorakenne. Tähän luokkaan on myös ohjelmoitu sointujen soittaminen Javan valmista javax.sound.midi-pakkausta käyttäen. Sointu on luokan java.lang.Thread aliluokka, joka toteuttaa rajapintaluokan java.lang.Runnable, joten sen ilmentymän voi antaa parametriksi Thread-luokan konstruktorille, jolloin saadaan säie, jonka suorittamien soittaa soinnun. Intervalli on luokan Sointu aliluokka, joka täydentää yliluokkaansa soitaErotellen()- metodilla ja korvaa sen run()-metodin omallaan, joka osaa soittaa intervallin sävelet erikseen.
Soinnusto on java.util.LinkedList-luokan aliluokka, jonka ilmentymä muodostaa Soinnuuttelijan kuulusteltavan sointuryhmän. Luokan final static -kenttiin on tallennettu Soinnuuttelijan tuntemat kuulustelukokonaisuudet, ja luokan konstruktori osaa muodostaa kaikki Soinnuuttelijan tuntemat soinnut ja intervallit. Soinnusto:sta löytyvät metodit sointujen arpomiseen ja kysymiseen ja vastausten tarkastamiseen, joten oikeastaan luokka sisältää kaiken Soinnuuttelijan viisauden. Luokan ilmentymä pitää myös kirjaa oikeista ja vääristä vastauksista sekä muodostaa ja suorittaa säikeet Sointu:jen soittamiseksi.
Pääohjelmaluokan Soinnuuttelija vastuulle jää Soinnuuttelija- sovelluksen ja -sovelman käyttöliittymät. Luokka pyytää käyttäjää valitsemaan kuulustelukokonaisuuden Soinnusto:n RYHMÄSTÖNIMET-String-taulukon alkioista muodostetulta listalta ja luo käyttöönsä Soinnusto:n ilmentymän antaen tämän konstruktorille parametriksi käyttäjän valinnan mukaista RYHMÄSTÖNIMET-taulukon indeksiä vastaavan RYHMÄSTÖT-int[][]-taulukon int[]-alkion. Soinnuuttelija välittää käyttäjän antamat vastaukset Soinnusto:lle, joka tarkistaa ne Sointu-olion onko()- metodilla ja antaa Soinnuuttelija:lle valmiit palautteet tulostettavaksi käyttäjälle.
Kuvassa 2 esitetyn luokkakaavion muut luokat ovat Javan valmista kalustoa.
Tekstipohjaisen Soinnuuttelija-sovelluksen on testattu toimivan JRE 1.3:n alla Linux 2.2:ssa sekä Windows NT 4:ssä ja 2000:ssa. Soinnuuttelija-sovelmaa on testattu mainituissa käyttöjärjestelmissä SDK 1.3:n Applet Viewer -apuohjelmalla, sekä Linuxissa Netscape 6:ssa. Testauksen aikana on pyritty soitattamaan jokainen sointu ja intervalli ainakin kerran, on testattu kaikkien sointuryhmien toimivuudet ja ohjelman ohjeiden mukaisen käytön lisäksi sen virheenkestävyyttä on koeteltu myös kaikenlaisilla epäloogisilla komennoilla ja valinnoilla.
Soinnuuttelijan version 1.0 testauksen aikana on havaittu seuraavat puutteet:
Soinnuuttelijan versiossa 1.0.14 on korjattu kohdassa 1.2 mainitut virheet.