a better way to create/update repo