full outer join and a few other changes