added join; build cleanups