begin cleanup and redesign
more