refactored Route data structure [ci skip]