Add more comments and clean up