extended & commented