reduce complexity of finding andinitializing dll
refactor get_data as separate module
reduce complexity of c_call splitting up prepare_args and handle_result