refactored join processor to be more restrictive