I think it's cleaner to leave the initial value null, and just have updateTitle() no-op if it's not set yet (since that means we're still in the middle of startup and no project is open yet).