hopefully some imporvements ready for the language model