rework example pet store job so that tasks are split into separate classes, plus additional print statements so that every method call leaves some evidence