Uses LinkedHashMap to maintain model property order