Use service object to decompose application, closes #108