Full Refactor code!