finished FAR refactoring to use reflection and not directly link to the FAR dll (compatible with any version of the DLL that has the same interface)