mostly finished part 5, part 4 still broken