never again do i want to spend 3~4h to trace a stupid bug again (and pretty sure `normalizepath` has one)