https://www.mytecharm.com.co/post/refactoring-a-javascript-class-cw49vn