added missing ordered dictionary implementation