Refoctored code.
Refoctored code.