reorganized how custom properties are laid out