more readable and faster