figuring out how to handle concurrent updates and whatnot