Changes to use abstract users
Added swapable option