Give the reasons for each step in the following simplifications

Give the reasons for each step in the following simplifications of compound statements.
(a) [(p ∨ q) ∧ (p ∨ ¬ q)] ∨ q Reasons
⇔ [p ∨ (q ∧ ¬ q)] ∨ q
⇔ (p ∨ F0) ∨ q
⇔ p ∨ q
(b) [(p ↔ q) ∧ (¬q ∧ (r ∨ ¬ q)] Reasons
⇔ (p → q) ∧ ¬q
⇔ (¬p ∨ q) ∧ ¬q
⇔ ¬q ∧ (¬p ∨ q)
⇔ (¬q ∧ ¬ p) ∨ (¬q ∧ q)
⇔ (¬ q ∧ ¬ p) ∨ F0
⇔ (¬q ∧ ¬ p)
⇔ ¬ (q ∨ p)