Done refactor