move around upsert
rework barrel again