Big refactor on progress