abstract + SoTD change