workbook refactor