handle type conversion so settings is always a Hash