rework swap and generic_proxy