i guess if and while are done, still need to check for accuracy