working on #2 and #3