Part 3 almost complete. Works, just need to error check