refactor archive