optional ref swap enabled