use _dump and self._load instead of marshal_*