Enlarged the definition of the RemoteObject boarding method to cover more use cases and changed RemoteObject interface into a class to avoid code redundancy