more cleanup, add javadoc for hasJoined