the backends are setup to have just the minimum functionality needed for a rangefinder, with all of the higher level logic in the frontend. This should make writing a new backend easier