Default join implementation