Clean Up and Refactorization