add todo: how to persist userProperties