Refactoring and Clean Up