use fog model rather than hash