adds preference threshholds and error handling