implement preferences & update on load