add xlsm
refactor