created routeplanner test for ensuring consistent behavior among all implementations, also did more refactoring of the interface