use object clone for subclass override