I have refactored the code, please review