Add fog, some fixes to existing, see diff