updated to be more readable