This method can IMHO be simplified with some enumerable magic (but I'm undershugared, I dont *see* it). But anyhow it is not used publically. Please move it to a private method.