works without self connects