add preferences functionality