Но вообще ревьювить пора закончить. Это все же не по TDD пишется. Поэтому данный цикл далеко не конечный и являет собой черновик и поэтому содержит массу грехов.