refactor less