add some comments and a ~bad example