implemented density distribution but very heavy