refactored Sanders code somewhat