removes join function and uses dict updating