it's better to init customFields with an empty collection to avoid "==null"