comments
clean up and optimize