#1 done but need to check, working on #2