Fixed un/marshalling by interface