return 0 if no swap given