Working on #18
Working on #20