too iterative approach