add XLS & refactor