Start Refactor and added new unit Test