faster implementation
slower....
faster learning, have to change decoding
everything before gazetteer done