- use an odict here to ensure ordering of properties