task D: partial finished