refactored organization of the methods. now they are organized by their functions