Join refactory