finish swap but some problems