add explanation comments