chain of responsibilities pattern
cleaning