Work on #4
Work on #5
Work on #3