why don't we just use `navigate`?