clean up
clean up, and redesign