working on #2 and #1 (wip)