User can provide own preferences now.

Fix error in celsius' new_instanc method.
Use cached values in factories (if cache is enabled).