Re-wrote 2, done 3, working on 4/5