really tough to understand