refactor w functions