backend source for libdrdroid. requires error and exception handling