implement forward join logic