Refactored code to make it easier to manage.