Added Guava for bidirectional map, and created ordered segments concept