CS450 Lab 5. As usual, shouldn't have put this off.