refactor more readable