Adding an abstract Marshalable class to define what can be encode or decode into xdr