Refined exercise #1 and #2