Refactoring - separated tasks into separate classes.