add testing first pass
use ordered dict