finished part 3. noticed there's a crash issue, don't know why yet.