fix Swappable concept, fixes #29