cleanup of shared components (part 1)
cleanup of shared components (part 2)
camera following the path, with some variation