catching exceptions
refactoring join method
refactored join methods