First attempt at Part 1