more cleanup and interface work