add service class

 * todo: module tests might have to be deleted depending on the
   flakeyness and speed