added implementation swap