refactor, window