clean up, remove unworthy approaches, generalize, and some other stuff