Initial re-write of join