Fog generation (tested), + refactor