readability, maybe performance too