We study the point-to-point shortest path problem in a setting where preprocessing is allowed. We improve the reach-based approach of Gutman in several ways. We introduce a bidirectional version of the algorithm that uses implicit lower bounds and we add shortcut arcs which reduce vertex reaches. Our modifications greatly reduce both preprocessing and query times. The resulting algorithm is competitive with the best previous method, due to Sanders and Schultes. However, our algorithm is simpler and combines in a natural way with A* search, which yields significantly better query times.