add extras and swapping