Week7 part2

Mostly refactoring with decorator and service object
oh cool!