Code optimisation + fix bug