Detailed comments added