using prepare to avoid bad default device situations