added some crucial comments