cleaned and edited