refactor grabbing and navigation (except parser)