cleaned and commented classes