adding detailed comments