use provider pattern to make appmap service configurable, decrease coupling in appmap and increase cohesion in app menu