More refactoring to present a more useful interfacd