finally sound loop data structure makes sense