Finished Refactor