[#75] refactoring of preference manager