Added classes for refactoring "push down method"