get_or_create all the things
weird get_or_create tuple