mostly done, still needs reset processing