Refactor Everthing