nonnullable for readProperties