cleaned and refactured
cleaned and refactured