final product!
Minor correction
Refactor and clean up