Finnish by establishing correspondences between a surface alphabet and a lexical alphabet (the two levels) and using a lexicon to determine which combinations of characters and morphemes are legal. Moreover, this is done by means of declarative rules, thereby avoiding the procedural problems of generative phonology, and the algorithm used is language independent.