join modified; actually compiles