clean preferences handling, fillPanel separates core/UI code