Single responsibility rule - when you write a comment similar to this describing the behaviour and use a lot of "ands", you're doing something wrong. Write separate methods instead.