update to respect insertion order
require modeler 0.2