refactor on recordio